グラフィカルユーザーインターフェース(GUI)において、ユーザーが簡単に選択肢を選ぶためのインタラクティブなウィジェットは重要な役割を果たします。Pythonでは、これらのインターフェースを簡単に作成できるライブラリがいくつか存在します。特に、「Tkinter」はPythonに標準で組み込まれているGUIライブラリで、マウス操作やキーボード操作でインタラクティブなアプリケーションを作成するのに非常に便利です。本記事では、Tkinterを使って「チェックボックス(チェックリスト)」、「ラジオボタン(選択ボタン)」、「ドロップダウンメニュー(選択リスト)」を使った基本的なインターフェースを作成する方法を詳しく説明します。
1. チェックボックス(Checkbox)
チェックボックスは、ユーザーが複数の選択肢の中から任意の項目を選べるウィジェットです。ユーザーは複数のチェックボックスを同時に選択したり、選択を解除したりできます。

チェックボックスの使用例
pythonimport tkinter as tk
def show_choices():
selected_choices = []
if var1.get() == 1:
selected_choices.append("オプション 1")
if var2.get() == 1:
selected_choices.append("オプション 2")
if var3.get() == 1:
selected_choices.append("オプション 3")
label.config(text="選択されたオプション: " + ", ".join(selected_choices))
root = tk.Tk()
root.title("チェックボックスの例")
# チェックボックスの変数
var1 = tk.IntVar()
var2 = tk.IntVar()
var3 = tk.IntVar()
# チェックボックスを作成
checkbox1 = tk.Checkbutton(root, text="オプション 1", variable=var1)
checkbox2 = tk.Checkbutton(root, text="オプション 2", variable=var2)
checkbox3 = tk.Checkbutton(root, text="オプション 3", variable=var3)
checkbox1.pack()
checkbox2.pack()
checkbox3.pack()
# 選択されたオプションを表示するラベル
label = tk.Label(root, text="選択されたオプション: ")
label.pack()
# 選択内容を表示するボタン
button = tk.Button(root, text="選択を表示", command=show_choices)
button.pack()
root.mainloop()
この例では、3つのチェックボックスを表示し、それぞれのチェックボックスに対応する変数を定義しています。「選択を表示」ボタンを押すと、選択されたオプションがラベルに表示されます。
2. ラジオボタン(Radio Buttons)
ラジオボタンは、複数の選択肢から1つだけを選べるウィジェットです。ユーザーが複数の選択肢を一度に選ぶことはできません。ラジオボタンは、通常グループ化され、グループ内で選択を制限します。
ラジオボタンの使用例
pythonimport tkinter as tk
def show_choice():
label.config(text="選択されたオプション: " + selected_choice.get())
root = tk.Tk()
root.title("ラジオボタンの例")
# ラジオボタンの選択肢
selected_choice = tk.StringVar()
# ラジオボタンを作成
radio1 = tk.Radiobutton(root, text="オプション 1", value="オプション 1", variable=selected_choice)
radio2 = tk.Radiobutton(root, text="オプション 2", value="オプション 2", variable=selected_choice)
radio3 = tk.Radiobutton(root, text="オプション 3", value="オプション 3", variable=selected_choice)
radio1.pack()
radio2.pack()
radio3.pack()
# 選択内容を表示するラベル
label = tk.Label(root, text="選択されたオプション: ")
label.pack()
# 選択内容を表示するボタン
button = tk.Button(root, text="選択を表示", command=show_choice)
button.pack()
root.mainloop()
この例では、3つのラジオボタンが表示され、それぞれの選択肢に対してselected_choice
というStringVar
に値が設定されます。「選択を表示」ボタンを押すと、選択されたオプションがラベルに表示されます。
3. ドロップダウンメニュー(Dropdown Menu)
ドロップダウンメニューは、選択肢がリストとして表示され、ユーザーがその中から1つを選ぶことができるウィジェットです。ラジオボタンと異なり、選択肢が最初は非表示で、ユーザーがメニューをクリックして表示されます。
ドロップダウンメニューの使用例
pythonimport tkinter as tk
def show_choice():
label.config(text="選択されたオプション: " + dropdown_choice.get())
root = tk.Tk()
root.title("ドロップダウンメニューの例")
# ドロップダウンメニューの選択肢
options = ["オプション 1", "オプション 2", "オプション 3"]
dropdown_choice = tk.StringVar()
dropdown_choice.set(options[0]) # デフォルト値
# ドロップダウンメニューを作成
dropdown = tk.OptionMenu(root, dropdown_choice, *options)
dropdown.pack()
# 選択内容を表示するラベル
label = tk.Label(root, text="選択されたオプション: ")
label.pack()
# 選択内容を表示するボタン
button = tk.Button(root, text="選択を表示", command=show_choice)
button.pack()
root.mainloop()
この例では、OptionMenu
ウィジェットを使ってドロップダウンメニューを作成しています。StringVar
を使って選択されたオプションを保持し、ボタンがクリックされたときにその選択内容を表示します。
4. チェックボックス、ラジオボタン、ドロップダウンメニューの使い分け
- チェックボックス: 複数の選択肢から任意の数を選択したいときに使用します。例えば、ユーザーが複数のオプションを選ぶ場合(例:好きなフルーツを選ぶ)。
- ラジオボタン: 1つだけを選択したいときに使用します。例えば、ユーザーに性別を選ばせる場合など。
- ドロップダウンメニュー: 表示スペースが限られている場合に選択肢が多いときに便利です。例えば、都市や国を選ぶ場合など。
まとめ
PythonのTkinterライブラリを使うことで、チェックボックス、ラジオボタン、ドロップダウンメニューなど、ユーザーが選択肢を選べるGUIウィジェットを簡単に作成することができます。これらのウィジェットは、ユーザーインタラクションを豊かにし、アプリケーションの使い勝手を向上させるための重要な要素です。