Salut tout le monde,
Voilà j'ai un petit soucis avec mon GUI Tkinter.
J'ai un canvas, qui est composé de plein d'item (rectangles et lettres) et j'aimerai lorsque récupérer le nom des items pour changer leurs couleurs lorsque je passe ma souris dessus en ayant le bouton droit d'appuyer.
J'ai réussi à faire quelques choses mais j'ai un soucis et je pense que j'ai donc pas utilisé la bonne solution car lorsque je passe ma souris dessus lentement ça fonctionne mais lorsque je passe rapidement je ne sélectionne pas tous les items (1 sur 2 voir 1 sur 3 si je passe très vite.
Voici un morceau de mon code
event vient de cette fonction :
canvas.bind('<B1-Motion>', lambda event,a="B1m":self.select(event, a))
et voici la fonction
Ce code fonctionne mais lorsque je bouge la souris trop vite, je manque des items. Je pense que self.select est appelé toutes les Xmillisecondes du coup quand je vais trop rapidement je manque quelques items.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 def select(self, event, typeofevent): #======================================================================= # get the canvas object #======================================================================= canvas = event.widget #======================================================================= # find object close to mouse #======================================================================= x = canvas.canvasx(event.x) y = canvas.canvasy(event.y) item = canvas.find_closest(x, y, halo=None, start=None)
Auriez vous une solution à m'indiquer pour palier ce problème ? J'aimerai récupérer instantanément et directement les items lors ma souris avec le bouton enfoncé passe dessus.
Merci beaucoup pour votre aide et vos conseils par avance,
Eduard
Partager