IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Python Discussion :

faire disparaitre un pointeur


Sujet :

Python

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Août 2007
    Messages
    144
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 144
    Points : 68
    Points
    68
    Par défaut faire disparaitre un pointeur
    Bonjour, j'en suis là
    http://www.developpez.net/forums/d10...hon3-gswinnen/

    j'aimerais aller un petit peu plus loin en supprimant le cercle après avoir pointé:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    from tkinter import *
     
    def cercle(event):
        x,y= event.x,event.y
        can.create_oval(x-5,y-5,x+5,y+5,fill = 'blue')
     
     
    fen = Tk()
    can= Canvas(fen,width = 200, height = 150, bg= "light yellow")
    can.bind("<Button 1>",cercle)
    can.pack()
     
    fen.mainloop()
    le petit cercle ne disparaît pas (et pour cause il n'y a pas de fonction pour celà) la question est comment faire?En gros je voudrais qu'il apparaisse pendant 5 sec et disparaisse ensuite
    Merci pour vos réponses

  2. #2
    Expert éminent
    Avatar de fred1599
    Homme Profil pro
    Lead Dev Python
    Inscrit en
    Juillet 2006
    Messages
    3 824
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Lead Dev Python
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juillet 2006
    Messages : 3 824
    Points : 7 120
    Points
    7 120
    Par défaut
    Un truc du genre, ne fonctionne pas ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    item = can.create_oval(x-5,y-5,x+5,y+5,fill = 'blue')
    can.delete(item)
    Celui qui trouve sans chercher est celui qui a longtemps cherché sans trouver.(Bachelard)
    La connaissance s'acquiert par l'expérience, tout le reste n'est que de l'information.(Einstein)

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Août 2007
    Messages
    144
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 144
    Points : 68
    Points
    68
    Par défaut
    item = can.create_oval(x-5,y-5,x+5,y+5,fill = 'blue')
    can.delete(item)
    Ok j'imaginais bien qu'il fallait un delete quelque part mais je voudrais ajouter une clock qui fasse disparaitre le cercle après un certain temps
    merci

  4. #4
    Expert éminent
    Avatar de fred1599
    Homme Profil pro
    Lead Dev Python
    Inscrit en
    Juillet 2006
    Messages
    3 824
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Lead Dev Python
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juillet 2006
    Messages : 3 824
    Points : 7 120
    Points
    7 120
    Par défaut
    Un truc dans ce style, je suppose

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    import time
     
    def exec_time(can, seconds):
        start = time.clock()
        while time.clock() - start < seconds:
            pass
        can.delete(item)
    Celui qui trouve sans chercher est celui qui a longtemps cherché sans trouver.(Bachelard)
    La connaissance s'acquiert par l'expérience, tout le reste n'est que de l'information.(Einstein)

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Août 2007
    Messages
    144
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 144
    Points : 68
    Points
    68
    Par défaut
    Ok merci cela fonctionne

  6. #6
    Expert confirmé Avatar de PauseKawa
    Homme Profil pro
    Technicien Help Desk, maintenance, réseau, système et +
    Inscrit en
    Juin 2006
    Messages
    2 725
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Technicien Help Desk, maintenance, réseau, système et +
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2006
    Messages : 2 725
    Points : 4 005
    Points
    4 005
    Par défaut
    Bonjour,

    tkinter ayant son propre gestionnaire d’événement je vous suggère de l'utiliser via widget.after(time, callback) afin de ne pas le bloquer.

    @+
    Merci d'utiliser le forum pour les questions techniques.

  7. #7
    Membre du Club
    Profil pro
    Inscrit en
    Août 2007
    Messages
    144
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 144
    Points : 68
    Points
    68
    Par défaut
    Bonjour, j'ai essayé avec.after mais ne fonctionne pas , j'ai cherché sur python doc , pas trouvé.
    J'ai donc besoin de vos lumières
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    from tkinter import *
    
    def cercle(event):
        x,y= event.x,event.y
        can.create_oval(x-10,y-10,x+10,y+10,fill = 'blue')
        
    fen = Tk()
    
    can= Canvas(fen,width = 200, height = 150, bg= "light yellow")
    can.bind("<Button 1>",cercle)
    can.after(500,delete(ALL))
    can.pack()
    
    fen.mainloop()

  8. #8
    Expert confirmé Avatar de PauseKawa
    Homme Profil pro
    Technicien Help Desk, maintenance, réseau, système et +
    Inscrit en
    Juin 2006
    Messages
    2 725
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Technicien Help Desk, maintenance, réseau, système et +
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2006
    Messages : 2 725
    Points : 4 005
    Points
    4 005
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    from tkinter import *
     
     
    def cercle(event):
        x, y = event.x, event.y
        can.create_oval(x-10, y-10, x+10, y+10, fill='blue')
        can.after(500, lambda: can.delete(ALL))
     
     
    fen = Tk()
    can= Canvas(fen, width=200, height=150, bg="light yellow")
    can.bind("<Button 1>", cercle)
    can.pack()
    fen.mainloop()
    Ce qui est équivalent à
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    from tkinter import *
     
     
    def cercle(event):
        def efface():
            can.delete(ALL)
        x, y = event.x, event.y
        can.create_oval(x-10, y-10, x+10, y+10, fill='blue')
        can.after(500, efface)
     
     
    fen = Tk()
    can= Canvas(fen, width=200, height=150, bg="light yellow")
    can.bind("<Button 1>", cercle)
    can.pack()
    fen.mainloop()
    Edit : Et pour aller plus loin
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    from tkinter import *
     
     
    def cercle(event):
        def efface(item):
            can.delete(item)
        x, y = event.x, event.y
        itm = can.create_oval(x-10, y-10, x+10, y+10, fill='blue')
        can.after(1000, lambda: efface(itm))
     
     
    fen = Tk()
    can= Canvas(fen, width=200, height=150, bg="light yellow")
    can.bind("<Button 1>", cercle)
    can.pack()
    fen.mainloop()
    Merci d'utiliser le forum pour les questions techniques.

  9. #9
    Membre du Club
    Profil pro
    Inscrit en
    Août 2007
    Messages
    144
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 144
    Points : 68
    Points
    68
    Par défaut
    C'est parfait merci

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Pointeur de la souris à faire disparaitre
    Par JLtaratata dans le forum Windows XP
    Réponses: 1
    Dernier message: 20/08/2010, 07h29
  2. Faire disparaitre le pointeur de souris
    Par billy242 dans le forum Qt
    Réponses: 1
    Dernier message: 17/04/2009, 11h51
  3. Faire disparaitre un bouton!
    Par manuaccess10 dans le forum IHM
    Réponses: 11
    Dernier message: 02/12/2005, 07h28
  4. faire disparaitre du texte par rapport à radio bouton
    Par allowen dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 24/10/2005, 14h20
  5. Réponses: 5
    Dernier message: 27/02/2004, 11h20

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo