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

TkinterのTreeviewでアイテムを編集・削除する方法


Treeviewウィジェットとは

TkinterのTreeviewウィジェットは、データを階層構造で表示するための部品です。この構造では、各行がファイルやディレクトリを表し、各ディレクトリの中にファイルやさらに別のディレクトリを格納できます。Treeviewウィジェットを作成するには、Treeview(parent, columns)コンストラクタを使用してテーブル形式で構築します。

Treeviewウィジェットのアイテムは、tree.selection()関数で対象のアイテムを選択することにより、編集や削除が可能になります。アイテムを選択した後、必要な操作を実行して、そのアイテムを削除または編集できます。

サンプルコード

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

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

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

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

def edit():
    # 編集対象のアイテムを取得
    selected_item = tree.selection()[0]
    tree.item(selected_item, text="blub", values=("foo", "bar"))

def delete():
    # 削除対象のアイテムを取得
    selected_item = tree.selection()[0]
    tree.delete(selected_item)

# Treeviewのアイテムを編集・削除するボタンを追加
edit_btn = ttk.Button(win, text="Edit", command=edit)
edit_btn.pack()
del_btn = ttk.Button(win, text="Delete", command=delete)
del_btn.pack()

win.mainloop()

実行結果

上記のコードを実行すると、車名とIDの一覧が表示されたウィンドウが出力されます。

TkinterのTreeviewでアイテムを編集・削除する方法

任意の行を選択して「Edit」または「Delete」ボタンをクリックすると、プログラム内で定義された操作が実行されます。

ここでは、4行目を選択して「Delete」ボタンをクリックしてみましょう。

TkinterのTreeviewでアイテムを編集・削除する方法

すると、次のような出力が得られます。

TkinterのTreeviewでアイテムを編集・削除する方法

  1. 【Python】Tkinterでテキストボックス(テキストウィジェット)の内容を削除する方法

    Tkinterには、ボタン、ダイアログボックス、各種ウィジェットなど、本格的なGUIアプリケーションを構築するための豊富な関数やモジュールが用意されています。複数行のテキストを扱えるテキストウィジェットを作成するには、Textウィジェットを使用します。これはコンストラクタとして機能し、親となるウィンドウやフレームを指定して呼び出します。作成したテキストウィジェットの内容を削除するには、組み込みメソッドdelete(first, last=None)を使います。このメソッドは、削除対象となる範囲(開始位置と終了位置)を引数として受け取ります。この記事では、クリックするとテキストボックス内の内容を

  2. macOS Catalinaの「移動された項目」フォルダとは?正体と安全な削除方法を解説

    macOSをまだ更新しておらず、Catalinaを使い続けているユーザーは少なくありません。もしあなたもその一人であれば、デスクトップやフォルダ内に突然現れる「移動された項目(Relocated Items)」という見慣れないフォルダを目にして、何か怪しいものではないかと不安になったことがあるかもしれません。このフォルダについては様々な噂がありますが、本記事ではその正体と存在理由をすべて解説します。さらに、少しでも早く削除したいと考えている方のために、具体的な手順もご紹介します。調査の結果、このフォルダはほぼすべてのCatalina環境に存在することが分かりました。一見するとエラーを引き起こし