TkinterでTreeviewのデータをダブルクリックしたら、その行のデータを取得したいです。
下記のように作ったらできました。
しかし、これだとヘッダをだブルクリックしたときも、フォーカスが当たっている行のデータを取得してしまいます。
ヘッダをダブルクリックしたときは、その処理をしないようにするにはどうすればよいでしょうか。
Python
1import tkinter as tk 2from tkinter import ttk 3 4def on_tree(e): 5 tree = e.widget 6 selected = tree.selection() 7 if len(selected) == 1: 8 values = tree.item(selected[0])["values"] 9 print(values) 10 11root = tk.Tk() 12 13tree = ttk.Treeview(root) 14tree.pack() 15 16 17# headings 18columns = 3 19tree["columns"] = tuple(range(columns)) 20tree["show"] = "headings" 21for i in range(columns): 22 tree.heading(i, text=f"column{i+1}") 23 24# data 25for i in range(10): 26 tree.insert("", "end", values=(f"data{i+1}", "", "")) 27 28#tree.bind("<Button-1>", on_tree) # NG 29tree.bind("<Double-Button-1>", on_tree) # Double Click 30#tree.bind("<<TreeviewSelect>>", on_tree) # Single Click 31 32root.mainloop()
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。