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

Tkinter Python Discussion :

Boutons Tkinter et mouseover ?


Sujet :

Tkinter Python

  1. #1
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2013
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2013
    Messages : 5
    Points : 3
    Points
    3
    Par défaut Boutons Tkinter et mouseover ?
    Bonjours à tous !
    Etant débutant en Pyhon et surtout nouveau sur ce forum, j'ai besoin de votre aide pour mon programme..
    J'ai crée un programme qui lance une fenêtre grâce à Tkinter. J'y importe mon background. Cependant, je n'est pas utilisé la méthode conventionnelle pour créer mes boutons à l’intérieur de la fênetre.
    J'ai tout d'abord importé mes images faisant office de boutons, puis j'y ai bindé une touche, le tout associé à un event.
    Je voudrais maintenant, après avoir cliqué sur le premier bouton (cf code ci-dessous), que lorsqu'on passe la souris sur le second boutons qui vient de s'afficher, l'image de celle-ci change (sans lancer l'event associé à ce deuxième bouton.). En gros un mouseover en mode Tkinter, mais je ne sais pas du tout comment m'y prendre.. Merci d'avance !

    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
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    from Tkinter import *
     
    #Création de la fenêtre 
    Fenetre = Tk()
    Fenetre.title('Test de Fenetre')
    Fenetre.configure()
    CanvasPrincipal = Canvas(Fenetre, width=1022, height=700)
    CanvasPrincipal.pack()
     
    #Importation Background + Images Boutons
    Background = PhotoImage (file="Images/BgMagasin.gif")
    Bouton1 = PhotoImage (file="Images/Bouton1.gif")
    Bouton1rouge = PhotoImage (file="Images/bouton1rouge.gif")
    Bouton2 = PhotoImage (file="Images/Bouton2.gif")
    Bouton2rouge = PhotoImage (file="Images/bouton2rouge.gif")
     
    CanvasPrincipal.create_image(510, 385, image = Background)
     
    #Images Cliquables
    CanvasPrincipal.create_image(170, 300, image = Bouton1, tag = "Choisir1")
     
    #Events
    def event1(event):
        print("Event 1, OK")
        CanvasPrincipal.create_image(170, 300, image = Bouton1rouge)
        CanvasPrincipal.create_image(510, 300, image = Bouton2, tag = "Choisir12")
     
    def event12(event):
        print("Event 12, OK")    
     
    # tag_bind(<nom du tag>, <nom event>, <fonction callback>)
    CanvasPrincipal.tag_bind("Choisir1", "<Button-1>", event1)
    CanvasPrincipal.tag_bind("Choisir12", "<Button-1>", event12)
     
    Fenetre.mainloop()

  2. #2
    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
    Bonsoir,

    L'event "<Enter>" correspond au fait que le pointeur de la souris passe sur le Widget/Item.
    CanvasPrincipal.tag_bind(item, "<Enter>", callback)

    @+

  3. #3
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2013
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2013
    Messages : 5
    Points : 3
    Points
    3
    Par défaut
    Impeccable, je vais bidouiller tout ça !
    Merci beaucoup de votre aide !

  4. #4
    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,

    Quelques notes.

    Si vous nommez votre item (tutu = CanvasPrincipal.create_image(x, y, image=toto, tag="Choisir")) vous pouvez changer l'image sans 'écraser' l'item. De même vous pouvez utiliser le tag pour cela.

    Attention avec les fonctions et PhotoImage (Le célèbre 'perte de référence'): Voir ici.

    Quiz du Fenetre.configure() : pour ?

    @+

Discussions similaires

  1. matplotlib masquer courbe avec bouton tkInter
    Par RyzenOC dans le forum Bibliothèques tierces
    Réponses: 3
    Dernier message: 09/04/2015, 09h04
  2. Réponses: 5
    Dernier message: 09/02/2013, 23h05
  3. Réponses: 2
    Dernier message: 27/04/2006, 22h59
  4. [Tkinter] Binder le bouton de fermeture d'un Tk()
    Par jc_isd dans le forum Tkinter
    Réponses: 2
    Dernier message: 09/02/2005, 16h11

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