【Python】Tkinterのリストボックスで特定のアイテムを変更・置き換える方法
Tkinterは、PythonでGUIアプリケーションを開発するための標準ライブラリであり、実用的なデスクトップアプリケーションの構築に広く利用されています。その中でもListbox(リストボックス)ウィジェットは、複数の項目を一覧形式で表示するためのコンテナとして使われる重要なウィジェットです。
リストボックスに項目を定義するには、Listbox(root, width, height, **options) のコンストラクタを作成します。表示したい項目は、好きな数だけ挿入することが可能です。
リストボックス内の特定のアイテムを変更したい場合は、まず変更対象の項目を選択するためのボタンを作成し、delete()メソッドで既存の値を削除します。その後、insert()メソッドで新しい項目を挿入することで、値を置き換えることができます。以下のサンプルコードで、具体的な動作を確認してみましょう。
サンプルコード
# 必要なライブラリをインポート
from tkinter import *
from tkinter import ttk
# tkinterフレーム(ウィンドウ)のインスタンスを作成
win = Tk()
# ウィンドウサイズを設定
win.geometry("700x350")
# Listboxウィジェットを作成
lb = Listbox(win, width=100, height=10, background="purple3", foreground="white", font=('Times 13'), selectbackground="white")
lb.pack()
# 選択された項目を先に削除し、
# 削除後に新しい項目をリストボックスへ挿入する
def edit_current():
for item in lb.curselection():
lb.delete(item)
lb.insert("end", "foo")
# リストボックスに項目を追加
lb.insert("end", "item1", "item2", "item3", "item4", "item5")
# 項目を編集・削除するためのボタンを追加
ttk.Button(win, text="Edit", command=edit_current).pack()
win.mainloop()
この例では、Listboxウィジェットを使って項目のリストを作成しています。さらに「Edit」という名前のボタンを用意し、選択したリスト項目の既存の値を書き換えられるようにしました。この仕組みを応用すれば、リストボックス内の任意の項目の値を自由に置き換え・編集できるようになります。
実行結果
スクリプトを実行すると、次のような出力ウィンドウが表示されます。

続いて、リストから任意の項目を選択し、「Edit」ボタンをクリックします。たとえば「item5」を選択して「Edit」を押すと、その項目が「foo」に置き換えられます。

-
Tkinterのリストボックスで選択した複数の項目を一括削除する方法
はじめに TkinterのListboxウィジェットでリストボックスを作成した際、ユーザーが選択した複数の項目をまとめて削除したいケースはよくあります。本記事では、その実装方法をサンプルコードとともにわかりやすく解説します。 複数選択を有効にするには デフォルト設定のリストボックスでは、1つの項目しか選択できません。複数の項目を選択できるようにするには、selectmodeオプションにMULTIPLEを指定します。 削除処理のポイントは、curselection()メソッドで現在選択されている項目のインデックスを取得し、後ろのインデックスから順番にdelete()メソッドを呼び出すことです。
-
tkinterでウィンドウを閉じる方法|destroy()メソッドの使い方を解説
tkinterを使えば、Pythonで手軽にGUIアプリケーションを作成できます。しかし、タイトルバー右上の×ボタン以外の方法でウィンドウやフレームを閉じたい場合、どのように実装すればよいか悩むこともあるでしょう。そのようなときに役立つのが、ウィンドウを破棄して閉じるための .destroy() メソッドです。tkinterの各ウィジェットや属性は互いに独立しているため、「ウィンドウを閉じる処理」を専用の関数として分離して定義できます。これにより、ボタンのクリックイベントからウィンドウを閉じる動作を自由に制御可能です。サンプルコード# ライブラリをインポート from tkinter impo