テキストがマウスクリックにバインドされたTkinterテキストウィジェットがある場合、ユーザーがクリックしたテキストを追跡するにはどうすればよいですか?クリックされたラベルの番号を返す関数が必要ですが、現状では、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()
助けていただければ幸いです。
答えを提供してくれた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()
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加