Python Tkinter
Treeviewでリストにあるデータをツリー表示したいのですが、
引数3番目をどう設定するか
私なりに作ってはみたのですが
下記方法よりいい方法あったら教えてください。
もしツリーに表示するデータを格納するものがリスト以外のもののほうが都合がいいようなら、それも教えてください。
Python
1import tkinter as tk 2#from tkinter import ttk 3 4from ttkwidgets import CheckboxTreeview 5#pip3 install ttkwidgets 6 7root = tk.Tk() 8 9#tree = ttk.Treeview(root) 10tree = CheckboxTreeview(root) 11tree.grid() 12 13li = [ 14 ["分類1", "Data1"], 15 ["分類1", "Data2"], 16 ["分類1", "Data3"], 17 ["分類2", "Data1"], 18 ["分類2", "Data2"], 19 ["分類3", "Data1"] 20] 21 22""" 23ここで 24tree.insert("", "end", "1", text="分類1") 25tree.insert("1", "end", "11", text="Data1") 26tree.insert("1", "end", "12", text="Data2") 27tree.insert("1", "end", "13", text="Data3") 28tree.insert("", "end", "2", text="分類2") 29tree.insert("2", "end", "21", text="Data1") 30tree.insert("2", "end", "22", text="Data2") 31tree.insert("", "end", "3", text="分類3") 32tree.insert("3", "end", "31", text="Data1") 33と同じことをやりたい。 34iidは上記と全く同じである必要はないが、 35ツリーの関係は同じになるようにしたい。 36 37textはリストにあるものを読めばいいが 383番目に設定している引数をどのように作ればいいか。 39""" 40 41tmp = [] # 分類名一時保存用 42flag = [0, 0] # [parent, iid] 43for i in li: 44 if not i[0] in tmp: 45 flag[0] += 1 46 flag[1] = 0 47 tree.insert("", "end", str(flag[0]), text=i[0]) 48 tmp.append(i[0]) 49 tree.insert(str(flag[0]), "end", str(flag[0]) + str(flag[1]), text=i[1]) 50 flag[1] += 1 51 52 53root.mainloop()

回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。