teratail header banner
teratail header banner
質問するログイン新規登録

質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.30%
Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

Tkinter

Tkinterは、GUIツールキットである“Tk”をPythonから利用できるようにした標準ライブラリである。

Q&A

解決済

1回答

1924閲覧

Python3 Tkinter リストにあるデータをツリー表示したい

person

総合スコア224

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

Tkinter

Tkinterは、GUIツールキットである“Tk”をPythonから利用できるようにした標準ライブラリである。

0グッド

0クリップ

投稿2022/02/01 00:18

編集2022/02/03 05:46

0

0

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

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

API ドキュメントには以下の様に記載されていますので、第3引数は指定しなくても問題ないかと思います。

help(CheckboxTreeview)

insert(self, parent, index, iid=None, **kw)
| Creates a new item and return the item identifier of the newly created item.
|
| :param parent: identifier of the parent item
| :type parent: str
| :param index: where in the list of parent's children to insert the new item
| :type index: int or "end"
| :param iid: item identifier, iid must not already exist in the tree. If iid is None a new unique identifier is generated.
| :type iid: None or str
| :param kw: other options to be passed on to the :meth:ttk.Treeview.insert method
|

python

1prev = '' # 分類名一時保存用 2for i in li: 3 if i[0] != prev: # parent 4 tree.insert("", "end", i[0], text=i[0]) 5 prev = i[0] 6 tree.insert(i[0], "end", text=i[1]) 7 8root.mainloop()

イメージ説明

投稿2022/02/01 00:51

編集2022/02/01 01:14
melian

総合スコア21259

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.30%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問