今日も見に来てくださって、ありがとうございます。石川さんです。
今日は、Treeviewについて調べてプログラミングしてみました。Treeviewには二種類の見せ方があって、headingsとtreeです。それぞれ上下に実装してみました。
できあがりイメージ

ソースコード
import tkinter as tk
import tkinter.ttk as ttk
class Application(tk.Tk):
def __init__(self):
super().__init__()
self.title("ttk Treeview Widget example headings/tree")
lf1 = tk.LabelFrame(self, text="headings")
lf1.grid(row=0,column=0, padx=10,pady=10)
headings = {"#1":"名前", "#2":"型", "#3":"サイズ"}
self.treeview = ttk.Treeview(lf1, columns=headings.keys(), show="headings")
self.treeview.pack(side=tk.LEFT, fill=tk.BOTH, expand=True,padx=10,pady=10)
self.scroll = ttk.Scrollbar(lf1, command=self.treeview.yview)
self.treeview.configure(yscroll=self.scroll.set)
self.scroll.pack(side=tk.LEFT, fill=tk.BOTH, pady=10)
for key, item in headings.items():
self.treeview.heading(key, text=item)
self.treeview.column("#1", width=500)
self.treeview.insert("",tk.END, values=("head_information","dict","3"))
self.treeview.insert("", tk.END, values=("tooltip_text","str","1"))
lf2 = tk.LabelFrame(self, text="tree")
lf2.grid(row=1,column=0, stick=tk.W, padx=10, pady=10)
style = ttk.Style(lf2)
style.configure('Treeview', rowheight=30)
self.treeview2 = ttk.Treeview(lf2, show="tree")
self.treeview2.heading("#0", text="tree view version", anchor=tk.W)
self.treeview2.pack(padx=10, pady=10)
parent1 = self.treeview2.insert("", tk.END,text="head_information")
self.treeview2.insert(parent1, tk.END, text="dict")
self.treeview2.insert(parent1, tk.END, text="3")
parent2 = self.treeview2.insert("", tk.END, text="tooltip_text")
self.treeview2.insert(parent2, tk.END, text="str")
self.treeview2.insert(parent2, tk.END, text="1")
if __name__ == "__main__":
application = Application()
application.mainloop()
詳細説明
9行目と26行目でLabelFrame()を作成しています。それぞれheadings用と、tree用に準備しました。12行目でshow="headings"オプションをつけたTreeviewを作成しています。columnsオプションでカラムを指定しています。
19行目のheadings()メソッドで、項目のヘッダ部分のテキストを設定しています。21行目でヘッダ項目の幅をセットしています。
headingsを指定することで、このような表形式でデータを扱うことができます。
30行目で、show="tree"オプションを付けたTreeviewを作成しています。フォルダ階層などのツリー形式のデータを表現することができます。
まとめ
headingsオプションを使ったTreeviewは、データベーステーブルからデータを取得して一覧を作成するときなどに、使えそうですね。treeオプションの方は、フォルダ階層以外にもプログラム構成や、組織構造など、幅広く使えそうです。

