Partage
  • Partager sur Facebook
  • Partager sur Twitter

tkinter texte sur bouton quand la souris et dessus

    13 mai 2015 à 9:55:52

    Bonjour, existe t'il un Evénement  mouseover dans tkinter, quand la souris et sur un bouton, un texte s'affiche, comme sur cette image :

    • Partager sur Facebook
    • Partager sur Twitter
      13 mai 2015 à 9:58:01

      Lorsque les positions de ta souris sont incluses dans celle de ton bouton alors c'est un mouseover et il te suffit d'afficher un rectangle et un petit bout de texte si la condition est respéctée :)
      • Partager sur Facebook
      • Partager sur Twitter
      OpenClassrooms retire tellement d'aiguilles de nos pieds qu'on pourrait ne plus trouver le foin de notre botte :)
      Anonyme
        13 mai 2015 à 13:54:01

        Il y a une classe Balloon dans le module tkinter.tix qui sert à créer des tooltips (c'est le nom de ces cadres d'informations).

        -
        Edité par Anonyme 13 mai 2015 à 13:54:12

        • Partager sur Facebook
        • Partager sur Twitter
          13 mai 2015 à 18:37:48

          Salut, ouais il en existe bien un en utilisant la méthode bind des Buttons de Tkinter.

          from tkinter import * #Import du module de Tkinter
          
          root = Tk() #Création de la fenêtre.
          
          #Fonctions qui change le texte du bouton:
          def setTextOnMouseOver(self):
          	button.config(text="Une souris est sur moi!!!")
          
          def setTextOnMouseLeave(self):
          	button.config(text="Je suis un bouton!!!")
          
          #Création du bouton:
          button = Button(root, text="Je suis un bouton!!!")
          
          #Ajout d'événement mouseover et mouseleave:
          button.bind("<Enter>", setTextOnMouseOver)
          button.bind("<Leave>", setTextOnMouseLeave)
          
          #Pack:
          button.pack()
          
          #Boule du programme
          root.mainloop()

          Voila j'espère que ça t'a aidé. :D

          -
          Edité par antoine311200 13 mai 2015 à 18:38:14

          • Partager sur Facebook
          • Partager sur Twitter
          好きこそもの上手なれ!世の中が狭い!
            19 mai 2015 à 10:26:23

            Bonjour, merci pour vos réponses.

            La solution de antoine311200 ne me convient pas, c'est pas vraiment ce que je veut faire.

            celthon je suis en train de voir, pour la classe baloon, j'ai un probleme avec toolkit, qui ne reconnais pas :

            import tkinter
            import tkinter.tix
            
            root = tkinter.Tk()
            l = tkinter.Listbox(root)
            l.insert('end', "Listbox")
            l.pack(side='top')
            t1 = ToolTip(l, follow_mouse=1, text="text sur la listbox")
            b = Tkinter.Button(root, text='Quitter', command=root.quit)
            b.pack(side='bottom')
            t2 = ToolTip(b, text='test')
            root.mainloop()



            -
            Edité par mathema 19 mai 2015 à 10:31:05

            • Partager sur Facebook
            • Partager sur Twitter
            Anonyme
              19 mai 2015 à 12:12:19

              Il n'y a pas de classe ToolTip dans tkinter, c'est la classe tkinter.tix.Baloon qui sert à faire des tooltips...

              • Partager sur Facebook
              • Partager sur Twitter
                19 mai 2015 à 15:45:39

                Je n'arrive pas a importer tkinter.tix.Baloon:

                import tkinter.tix.Baloon

                Faut t'il le télécharger séparément ?

                • Partager sur Facebook
                • Partager sur Twitter
                Anonyme
                  19 mai 2015 à 15:51:02

                  C'est Balloon avec 2 'l'. Sinon tu peux aussi allez lire la doc...

                  • Partager sur Facebook
                  • Partager sur Twitter
                    19 mai 2015 à 16:29:10

                    J'avais essayé avec 2l, j'ai la même erreur:

                    ImportError: No module named 'tkinter.tix.Balloon'; 'tkinter.tix' is not a package


                    La doc que j'ai trouver est pour python 2.3, pas terrible.

                    -
                    Edité par mathema 19 mai 2015 à 16:29:20

                    • Partager sur Facebook
                    • Partager sur Twitter
                    Anonyme
                      19 mai 2015 à 16:52:00

                      dsl, je débute en python, c'est bon j'ai réussi a importer la classe, merci pour ton aide (et ta patience :honte:)

                      J'ai aussi réussie a trouver la bonne doc :

                      http://tix.sourceforge.net/dist/current/man/html/TixCmd/tixBalloon.htm#M4

                      J'y comprend pas grand chose, mais je suis en train de chercher, il faut faire un truc comme ça, mais il doit y avoir une erreur dans les options

                      t1 = Balloon(l, follow_mouse=1, text="text sur la listbox")


                      Mais dans la doc, voila ce quelle me sort:

                      Command-Line Name: -initwait
                      Database Name: initWait
                      Database Class: InitWait
                      In milliseconds. Specifies how long the balloon should wait before popping up in a widget.
                      Command-Line Name: -state
                      Database Name: state
                      Database Class: State
                      Specifies the which help message to display when the mouse pointer enters a widget associated with this balloon. Valid options are both: display both the balloon message and the status bar message, balloon: display only the balloon message, status: display only the status bar message and none: display no messages.
                      Command-Line Name: -statusbar
                      Database Name: statusBar
                      Database Class: statusBar
                      Specifies the widget to use as the status bar of this balloon. This widget must have a "-text" option. Usually a label widget is used.

                       Je vois pas le rapport avec une base de donnée.

                      -
                      Edité par mathema 19 mai 2015 à 16:52:52

                      • Partager sur Facebook
                      • Partager sur Twitter
                        19 mai 2015 à 17:31:18

                        >>> from tkinter import tix
                        >>> 
                        >>> root = tix.Tk()
                        >>> but = tix.Button(root, text = 'OK')
                        >>> but.pack()
                        >>> bal = tix.Balloon(root)
                        >>> bal.bind_widget(but, msg='click !')
                        • Partager sur Facebook
                        • Partager sur Twitter

                        tkinter texte sur bouton quand la souris et dessus

                        × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                        × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
                        • Editeur
                        • Markdown