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

2024-04-29 04:35:37 发布

您现在位置:Python中文网/ 问答频道 /正文

如果我有一个Tkinter文本小部件,其中的文本绑定到鼠标单击上,那么如何跟踪用户单击的文本?我希望函数返回所单击标签的编号,但它只打印n的最后一个值,即5。例如,如果用户单击“Name 1”,我希望它打印“1”,如果用户单击“Name 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()

谢谢你的帮助


Tags: 函数代码用户name文本部件tkinterroot
1条回答
网友
1楼 · 发布于 2024-04-29 04:35:37

感谢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()

相关问题 更多 >