我在for循环中用他们的文本和东西创建了8个标签,我也喜欢为每个标签创建事件(内部循环),这样当用户将鼠标悬停在每个标签上时,它会显示不同的文本
我只需粘贴相关部分:
for index, label in enumerate(labels):
lab = Tk.Label(self.root, text=label)
lab_info = PARAMS[label]
lab.grid(row=index)
lab.bind('<Enter>', lambda event: self.on_enter(event, lab_info))
lab.bind('<Leave>', self.on_leave)
entry = Tk.Entry(self.root)
entry.grid(row=index, column=1)
self.entries_dict[label] = entry
def on_enter(self, event, lab_info):
self.enter = Tk.Label(self.root, text=lab_info, bg='#ffffb3')
self.enter.grid(row=0, rowspan=3, column=1)
def on_leave(self, event):
self.enter.destroy()
什么有效:标签被创建,它们按我指定的方式布局,它们具有正确的文本等。
什么行不通:如果我将鼠标悬停在其中任何一个上,则只会打印出最后一个标签的文本。我确定我错过了一些东西,但是我已经盯着这个太久了,而且它变得很烦人
编辑:这是课堂的一部分,这就是为什么所有的自我。*