Tkinterのリストボックスで選択状態を保持する方法【exportselection活用】
例えば、あるディレクトリから複数のファイルを選択してクリップボードにコピーし、それらをまとめて別のディレクトリに貼り付けるような処理を考えてみましょう。このように、リストボックス(Listbox)で複数の項目を選択し、その選択状態を維持したい場合には、exportselection プロパティを利用します。
このプロパティを設定することで、別のリストボックスから項目を選択している間も、元のリストボックスの選択状態を保持できるようになります。具体的には、リストボックスの選択を固定して動作させたい場合、exportselection=False を指定します。
ポイント:exportselection のデフォルト値
exportselection はデフォルトで True に設定されています。そのため、あるウィジェットで選択を行うと、他のウィジェットの選択状態は自動的に解除されてしまいます。複数のリストボックスで同時に選択を保持したい場合は、必ず False を明示的に指定しましょう。
コード例
#Import tkinter library
from tkinter import *
#Create an instance of Tkinter frame or window
win= Tk()
#Set the geometry of tkinter frame
win.geometry("750x350")
listboxA=Listbox(win, exportselection=False) #Create listboxA
listboxA.pack(padx=10,pady=10,fill=BOTH,expand=True)
listboxB=Listbox(win,exportselection=False) #Create ListboxB
listboxB.pack(padx=10,pady=10,fill=BOTH,expand=True)
listboxA.insert(1, "Python")
listboxA.insert(2, "Java")
listboxA.insert(3, "C++")
listboxA.insert(4, "Rust")
listboxA.insert(5, "GoLang")
listboxB.insert(1, "C#")
listboxB.insert(2, "JavaScript")
listboxB.insert(3, "R")
listboxB.insert(4, "Php")
win.mainloop()
実行結果
上記のコードを実行すると、2つのリストボックスが並んで表示されたウィンドウが開きます。それぞれのリストボックスで項目を選択してみると、片方を選んでももう片方の選択が解除されることなく、両方のリストボックスで同時に複数の項目を選択・強調表示できることが確認できます。

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