【Python】ラジオボタンを使った処理の制御【CustomTkinter】

Python

ラジオボタンを使った処理の制御

Tkinterでラジオボタンを使った処理の制御をする で公開しているコードを CustomTkinter を使う処理に改修したものです。


値を取得する

選択したラジオボタンから設定した値を取得する

import customtkinter as ctk

# 値を取得する関数
def get_selected_value() -> None:
    selected_value = radio_var.get()
    print(f'取得値:{selected_value}')

# CustomTkinterの基本設定
ctk.set_appearance_mode('System')   # 'Light' / 'Dark' / 'System'
ctk.set_default_color_theme('blue') # 'blue' / 'green' / 'dark-blue'

window = ctk.CTk()
window.title('RadioButton Sample')
window.geometry('350x200')

# ラジオボタンの値を保持する変数
radio_var = ctk.StringVar(value='1')  # 初期値を指定する

# ラジオボタンのオプション
options = [
    ('ラジオボタン1', '1'),
    ('ラジオボタン2', '2'),
    ('ラジオボタン3', '3')
]

# ラジオボタンを生成
for text, value in options:
    rb = ctk.CTkRadioButton(master=window, text=text, value=value, variable=radio_var)
    rb.pack(anchor='w', padx=20, pady=5)

# 値の取得を実行するボタン
btn = ctk.CTkButton(master=window, text='値を取得する', command=get_selected_value)
btn.pack(pady=15)

window.mainloop()

実行結果

取得値:1


選択状態で処理を分岐させる

ラジオボタンに設定した数値で処理を分岐させる

import customtkinter as ctk

# 表示メッセージ
HANDLERS: dict[int, str] = {
    1: 'ラジオボタン1が選択されました',
    2: 'ラジオボタン2が選択されました',
    3: 'ラジオボタン3が選択されました',
}

DEFAULT_MESSAGE = '選択肢以外の値です'

def check_selection() -> None:
    selected_value = radio_var.get()
    print(HANDLERS.get(selected_value, DEFAULT_MESSAGE))

# CustomTkinterの基本設定
ctk.set_appearance_mode('System')
ctk.set_default_color_theme('blue')

# GUIの作成
window = ctk.CTk()
window.title('ラジオボタンの選択による条件分岐')
window.geometry('320x220')

# ラジオボタンの値を保持する変数(初期値=1)
radio_var = ctk.IntVar(value=1)

# ラジオボタンの生成
options = [
    ('ラジオボタン1', 1),
    ('ラジオボタン2', 2),
    ('ラジオボタン3', 3),
]

for text, value in options:
    rb = ctk.CTkRadioButton(master=window, text=text, variable=radio_var, value=value)
    rb.pack(anchor='w', padx=20, pady=5)

# 選択状態を確認するボタン
check_button = ctk.CTkButton(master=window, text='選択を確認', command=check_selection)
check_button.pack(pady=15)

window.mainloop()

実行結果

ラジオボタン2が選択されました


ラジオボタンに設定した文字列で処理を分岐させる

import customtkinter as ctk

# 表示文言
HANDLERS: dict[str, str] = {
    'opt1': '選択肢1が選択されました',
    'opt2': '選択肢2が選択されました',
    'opt3': '選択肢3が選択されました',
}

DEFAULT_MESSAGE = '未定義の選択肢です'

def get_selected_value() -> None:
    selected_value = radio_var.get()
    print(HANDLERS.get(selected_value, DEFAULT_MESSAGE))

# CustomTkinterの基本設定
ctk.set_appearance_mode('System')
ctk.set_default_color_theme('blue')

# GUIの作成
window = ctk.CTk()
window.title('ラジオボタンの選択値を取得')
window.geometry('360x240')

# ラジオボタンの値を保持する変数
radio_var = ctk.StringVar(value='opt1')  # 初期値

# ラジオボタンの生成
options = [
    ('ラジオボタン1', 'opt1'),
    ('ラジオボタン2', 'opt2'),
    ('ラジオボタン3', 'opt3'),
]

for text, value in options:
    rb = ctk.CTkRadioButton(master=window, text=text, variable=radio_var, value=value)
    rb.pack(anchor='w', padx=20, pady=6)

# ボタンを作成して選択値を取得する
get_value_button = ctk.CTkButton(master=window, text='選択値を取得', command=get_selected_value)
get_value_button.pack(pady=15)

window.mainloop()

実行結果

選択肢3が選択されました

Python

Posted by junichi