如何跟踪单击的文本条目?

时间:2018-02-28 03:54:49

标签: python tkinter

如果我有一个Tkinter Text小部件,文本绑定到鼠标单击,我如何跟踪用户点击的文本?我希望函数返回单击的标签的编号,但是它只显示n的最后一个值,即5。例如,如果用户单击"名称1",我希望它打印" 1",如果用户点击"名称2",我希望它返回" 2"。

以下是代码:

import tkinter as tk

def prt(num):
    print(num)

root = tk.Tk()

t = tk.Text(root, height=20, width=50)
t.pack()
for n in range(1, 6):
    t.insert(tk.END, "%s %d\n" % ("Name", n), "label")
    t.tag_bind("label", "<Button-1>", lambda event, num = n: prt(num))

root.mainloop()

任何帮助表示感谢。

1 个答案:

答案 0 :(得分:1)

感谢jasonharper提供答案。这是工作代码。

import tkinter as tk

def prt(num):
    print(num)

root = tk.Tk()

t = tk.Text(root, height=20, width=50)
t.pack()
for n in range(1, 6):

    t.insert(tk.END, "%s %d\n" % ("Name", n), "label%d" % n)

    t.tag_bind("label%d" % n, "<Button-1>", lambda event, num = n: prt(num))

root.mainloop()
相关问题