Tkinter动态事件绑定多个标签

时间:2019-07-01 01:34:59

标签: python tkinter

尝试将事件绑定到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事件不起作用,它仅绑定到最后一个标记。如何将事件动态绑定到多个标签?

1 个答案:

答案 0 :(得分:2)

绑定标签时,您正在呼叫callback(e, t)

相反,您应该使用lambda函数传递正确的参数并将其绑定到每个标签:

lambda event, t=t: callback(event, t)