PythonのGUIライブラリ「Tkinter」には、ユーザーが複数の選択肢から1つを選ぶための「ラジオボタン(Radio Button)」というウィジェットがあります。本記事では、Tkinterのラジオボタンの基本的な使い方から応用例までを、サンプルコードとともに分かりやすく解説します。
目次
Python Tkinterのラジオボタンとは?
ラジオボタンは、選択肢の中から1つだけを選択できるボタンのことです。チェックボックスとは異なり、複数の選択肢を同時に選ぶことはできません。例えば、性別や支払い方法の選択など、ユーザーが1つだけを選ぶ必要がある場面でよく使われます。
Tkinterでは、Radiobutton
ウィジェットを使用してラジオボタンを作成します。このウィジェットを使うことで、Pythonで簡単にGUIアプリに選択肢の機能を追加できます。
Tkinterでラジオボタンを作成する方法
PythonのTkinterでラジオボタンを作成するには、以下のステップを踏みます。
- Tkinterの
Tk
クラスを使ってウィンドウを作成する IntVar
またはStringVar
を使って選択状態を管理するRadiobutton
ウィジェットを作成し、選択肢を設定するpack()
やgrid()
でレイアウトを整える
基本的なラジオボタンの実装例
import tkinter as tk
# メインウィンドウの作成
root = tk.Tk()
root.title("Tkinterのラジオボタン")
root.geometry("500x500") # ウィンドウサイズを500x500に設定
# 選択肢を管理する変数を作成
selected_value = tk.IntVar()
selected_value.set(1) # デフォルトの選択肢を設定
# ラジオボタンの作成
tk.Radiobutton(root, text="選択肢1", variable=selected_value, value=1).pack()
tk.Radiobutton(root, text="選択肢2", variable=selected_value, value=2).pack()
tk.Radiobutton(root, text="選択肢3", variable=selected_value, value=3).pack()
# ウィンドウの表示
root.mainloop()

実装のポイント
IntVar()
は整数値を保持する変数で、どの選択肢が選ばれているかを管理する。Radiobutton
のvariable
にIntVar
を設定することで、ボタンの選択状態を共有できる。value
に各ボタンの値を設定することで、どのボタンが選択されたかを区別できる。
ラジオボタンの選択値を取得する方法
ラジオボタンで選択された値を取得し、処理を行うには、IntVar.get()
を使用します。
選択値を表示するサンプルコード
import tkinter as tk
def show_selected():
print(f"選択された値: {selected_value.get()}")
root = tk.Tk()
root.title("ラジオボタンの値取得")
root.geometry("500x500") # ウィンドウサイズを500x500に設定
selected_value = tk.IntVar()
selected_value.set(1)
# ラジオボタン
tk.Radiobutton(root, text="選択肢A", variable=selected_value, value=1).pack()
tk.Radiobutton(root, text="選択肢B", variable=selected_value, value=2).pack()
tk.Radiobutton(root, text="選択肢C", variable=selected_value, value=3).pack()
# ボタン(クリックすると選択値を表示)
tk.Button(root, text="選択肢を表示", command=show_selected).pack()
root.mainloop()

コードの解説
show_selected()
関数でIntVar.get()
を使って選択値を取得。Button
ウィジェットを作成し、ボタンがクリックされたら選択値を表示する。
ラジオボタンを使った応用例
ラジオボタンは、ユーザーが1つのオプションを選択するフォームによく使われます。例えば、以下のように、性別を選択するフォームを作成できます。
import tkinter as tk
def submit():
print(f"選択された性別: {gender.get()}")
root = tk.Tk()
root.title("性別選択フォーム")
root.geometry("500x500") # ウィンドウサイズを500x500に設定
gender = tk.StringVar()
gender.set("男性")
# ラジオボタン
tk.Radiobutton(root, text="男性", variable=gender, value="男性").pack()
tk.Radiobutton(root, text="女性", variable=gender, value="女性").pack()
tk.Radiobutton(root, text="その他", variable=gender, value="その他").pack()
# 送信ボタン
tk.Button(root, text="送信", command=submit).pack()
root.mainloop()

まとめ
本記事では、PythonのTkinterを使ってラジオボタンを実装する方法を解説しました。
- Tkinterのラジオボタンは、ユーザーが複数の選択肢から1つを選べるウィジェット。
IntVar
またはStringVar
を使って選択状態を管理する。get()
メソッドで選択された値を取得できる。- フォームなどのGUIアプリで幅広く活用できる。
ラジオボタンを使って、実用的なGUIアプリを作成してみてください!