Python tkinter label widget mouse over -
my objective change text of label widget when mouse move on label.for 1 label this:
import tkinter tk def fun1(event): label.config(text="haha") def fun2(event): label.config(text="label1") root=tk.tk() label=tk.label(root,text="label1") label.grid(row=1,column=1) label.bind("<enter>", fun1) label.bind("<leave>", fun2) root.mainloop()
but now, have bunch of labels generated loop , list contains text want change.
mylist=['a','b','c','d','e'] in range(5): tk.label(root,text="label"+str(i)).grid(row=i+1,column=1)
this generate 5 labels numbers. possible add mouse on event each individual label when mouse on over label 1, changes 'a', when mouse on label 2, changes 'b', etc? fyi, number of items in mylist same number used in loop.
import tkinter tk root = tk.tk() mylist = ['a','b','c','d','e'] i, x in enumerate(mylist): label = tk.label(root, text="label "+str(i)) label.grid(row=i+1, column=1) label.bind("<enter>", lambda e, x=x: e.widget.config(text=x)) label.bind("<leave>", lambda e, i=i: e.widget.config(text="label "+str(i))) root.mainloop()
Comments
Post a Comment