尝试将事件绑定到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))
遍历所有标记并尝试绑定click事件不起作用,它仅绑定到最后一个标记。如何将事件动态绑定到多个标签?
答案 0 :(得分:2)
绑定标签时,您正在呼叫callback(e, t)
。
相反,您应该使用lambda函数传递正确的参数并将其绑定到每个标签:
lambda event, t=t: callback(event, t)