Python
 Computer >> コンピューター >  >> プログラミング >> Python

TkinterのTreeViewウィジェットに列を追加するにはどうすればよいですか?

TkinterのTreeViewウィジェットは、データを行と列の形式で階層的に表示するために使用されるウィジェットです。TreeViewウィジェットを作成するには、まずTreeview(master, column, show='headings')のコンストラクタを呼び出します。このとき、テーブルに含めたい列のリストを指定し、columnパラメータに渡すことができます。

TreeViewウィジェットにおけるデータのインデックスは0から始まります。そのため、最初の列をカウント対象から除外したい場合は、show='headings'パラメータを使用します。ここでは、自動車メーカーの一覧を示す「ID」と「会社名」の2つの列を持つテーブルを表示するアプリケーションを作成してみましょう。各列のデータは、insert()メソッドを使って挿入できます。

サンプルコード

# 必要なライブラリをインポート
from tkinter import *
from tkinter import ttk

# tkinterフレームのインスタンスを作成
win = Tk()

# ウィンドウサイズを設定
win.geometry("700x300")

# Styleウィジェットのインスタンスを作成
style = ttk.Style()
style.theme_use('clam')

# Treeviewウィジェットを追加
tree = ttk.Treeview(win, column=("c1", "c2"), show='headings', height=8)
tree.column("# 1", anchor=CENTER)
tree.heading("# 1", text="ID")
tree.column("# 2", anchor=CENTER)
tree.heading("# 2", text="Company")

# Treeviewウィジェットにデータを挿入
tree.insert('', 'end', text="1", values=('1', 'Honda'))
tree.insert('', 'end', text="2", values=('2', 'Hyundai'))
tree.insert('', 'end', text="3", values=('3', 'Tesla'))
tree.insert('', 'end', text="4", values=('4', 'Wolkswagon'))
tree.insert('', 'end', text="5", values=('5', 'Tata Motors'))
tree.insert('', 'end', text="6", values=('6', 'Renault'))

tree.pack()

win.mainloop()

実行結果

上記のコードを実行すると、自動車メーカーの一覧が表示されたTreeViewウィジェットが画面に出力されます。

TkinterのTreeViewウィジェットに列を追加するにはどうすればよいですか?

なお、insert()メソッドを使用することで、既存の行や列の値を後から変更・置き換えることも可能です。これにより、動的にテーブルの内容を更新できる柔軟なアプリケーションを構築できます。

  1. Tkinterでツリービュー(Treeview)の全アイテムを一括削除・クリアする方法

    TkinterのTreeviewウィジェットとはTkinterのTreeviewウィジェットは、階層構造を持つ項目をリスト形式で表示するためのコンポーネントです。見た目や操作性は、WindowsやmacOSに搭載されているファイルエクスプローラーに似ています。Treeviewウィジェットを使って作成した項目リストをすべて削除したい場合には、delete()関数を使用します。この関数は、get_children()メソッドで取得した各アイテムを反復処理しながら呼び出すことで、ツリー内のすべての要素を一括して消去できます。サンプルコード:プログラミング言語のTreeviewを作成する以下の例では、

  2. Tkinterウィジェットの片側だけにパディングを追加する方法

    特定のウィジェットの片側(上下または左右のいずれか)にのみパディング(余白)を追加したいケースはよくあります。Tkinterでは、pack()メソッドとgrid()メソッドを使うことで、このような部分的なパディングを簡単に実現できます。 pack()メソッドとgrid()メソッドの違い pack()メソッドでは、「padx」(左右の余白)と「pady」(上下の余白)の値を個別に定義します。これにより、水平方向と垂直方向それぞれに異なるパディングを柔軟に設定できます。 一方、grid()メソッドの場合は、X軸方向とY軸方向のパディングを表す2つのタプル(x と y)を指定するだけで、任意の軸まわ