LoginSignup
3
3

More than 1 year has passed since last update.

PysimpleGUIラジオボタンの使い方

Posted at

はじめに

PysimpleGUIのラジオボタンの配置の例題はいくつかあったのですが、実際の使い方の例があまりなかったので、覚えとして記載します。

ラジオボタンの使い方ではないですが、こちらのチェックボックスの使い方を参考にしました。
PySimpleGUIで動的にチェックボックスを作成して選択した値を取得してみた

import PySimpleGUI as sg

sg.theme('Dark Blue 3')

radio_dic = {
    '-1-': 'aaa',
    '-2-': 'bbb',
    '-3-': 'ccc',
}

# Create radio Buttons by list comprehensions
layout = [
    [sg.Text('select input file', size=(45, 1))],
    [sg.Text("file"), sg.InputText(key="-file-")],
    [sg.Radio(item[1], key=item[0], group_id='0') for item in radio_dic.items()],
    [sg.Submit(key='-submit-')],
    [sg.Output(size=(45, 10))]
]

window = sg.Window('Example for radio button', layout)

while True:
    event, values = window.read()

    if event is None:
        break

    if event == '-submit-':
        print(values)
        print(values['-1-'],values['-2-'],values['-3-'])
        window['-2-'].update(True)


window.close()

実行例

sg_radio.PNG

コードの説明

radio_dicでラジオボタンの名前と、キーの辞書形式を作成します。
layoutのラジオボタンをリスト内包表記で作成します。この時Radioボタンは、group_idを指定しないといけないので、idを指定します。キーはpysimpleGUIの習慣で-で囲んでいます。(例えば、"-file-"など)
リスト内包表現を使わないで一つ一つ設定する場合には、デフォルト(True、False)を設定することができます。
ラジオボタンは、同じグループのうち一つだけTrueになります。
Submitボタンを押すと、valuesに入っている値がOUTPUTに表示されます。valuesは辞書型ですので、キーと値が表示されます。その次のprintで、キーを指定した値が表示されます。
次のwindow表示されているウィンドウを指定して、値をアップデートしています。最初はラジオボタンにチェックが入っておらず、すべてFalseになっていますが、Submitを押すと、bbbにチェックが入ります。またSubmitを押すと今度は、-2-Trueになります。

3
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
3