尝试将事件绑定(bind)到 tkinter 中的多个文本标记。基本上,用户输入文本,文本会在文本输入中重新写入,每个单词都作为标签,这样当用户单击某个单词时,就会拾取该单词。
def check_input():
user_input = text.get('1.0', END)
text.delete("1.0",END)
u = user_input.split()
tags = []
for i,j in enumerate(u):
tags.append('tag'+str(i))
text.tag_config("tag"+str(i), foreground="blue")
text.insert(END, j+" ", "tag"+str(i))
for t in tags:
text.tag_bind(t, "<Button-1>", lambda e:click(e, t))
循环遍历所有标签并尝试绑定(bind)点击事件不起作用,它只绑定(bind)到最后一个标签。如何动态地将事件绑定(bind)到多个标签?
最佳答案
您在绑定(bind)标签时调用callback(e, t)
。
相反,您应该使用 lambda 函数来传递正确的参数并将它们绑定(bind)到每个标签:
lambda event, t=t: callback(event, t)
关于python - Tkinter 多个标签的动态事件绑定(bind),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56829200/