PySimpleGUIを試すがてら、簡単な計算機を作ってみました。
2つのフォームに計算したい数値を入れてラジオボタンで足し算、引き算、掛け算、割り算を選択し、Submit
を押せば、その下の窓に計算結果が表示されます。
目次
PySimpleGUIでのラジオボタンの実装について
PySimpleGUIの実装方法については下記の公式ドキュメント、ならびにQiitaの記事を参考にさせていただきました。
https://pysimplegui.readthedocs.io/en/latest/#radio-button-element
足し算、引き算、掛け算、割り算を下記で定義して、リスト内包表記を使ってラジオボタンを生成しています。
実際に書いたコードを一部抜粋して下に載せます。
またコードの全体についてはGitHubに上げていますので、そちらを参照ください。
(一応このポストを書いた状態のコードを v0.0.1
とタグを打っているのでそちらのリンクを貼っておきます)
Release v0.0.1 · shinshin86/pysimplegui-calc-sample · GitHub
calc_dict = { "-ADD-": "+ (Add)", "-SUB-": "- (Sub)", "-MUL-": "* (Mul)", "-DIV-": "/ (Div)", } ・ ・ ・ calc_frame = [ ・ ・ [sg.Radio(item[1], key=item[0], group_id='calc', default=item[0]=="-ADD-") for item in calc_dict.items()], ・ ・ ]
sg.Radio
でラジオボタンを定義します。
渡す引数は下記のとおりです。
sg.Radio("ラベルテキスト", "-KEY-(※)", group_id='同じIDを付与されたラジオボタンがグループ化される') # ※PySimpleGUIでは-KEY-というようなスタイルが慣習となっている
なお、下記のようにdefault=True
とすると、デフォルトでチェックを入れることが可能です。
sg.Radio("ラベルテキスト", "-KEY-", group_id='同じIDを付与されたラジオボタンがグループ化される', default=True)
上に貼ったコードでは default=item[0]=="-ADD-"
とすることで、デフォルトで足し算にチェックを入れるようにしています。
ラジオボタンのチェックに関する値の受け取り方
ラジオボタンの値の受け取りについてはvalues
を通して行います。
実際に書いたコードを必要な部分だけ抜粋して下に載せます。
while True: event, values = window.read() if values["-ADD-"]: # 足し算の処理 elif values["-SUB-"]: # 引き算の処理 elif values["-MUL-"]: # 掛け算の処理 elif values["-DIV-"]: # 割り算の処理
このようにラジオボタンの値は入力テキストと同様に values
にdictオブジェクトとして格納されているので、dictオブジェクトの値をチェックすることでラジオボタンの選択に応じた処理を行うことが可能です。
なお、ラジオボタンの値はチェックされている場合はTrue
、それ以外はFalse
が格納されています。
PySimpleGUIとは?
PySimpleGUIとは?という方向けのポストを以前書いていたので、気になる方はそちらを参照してみてください。
PyhonでサクッとGUIを作れるのはかなり嬉しいですね。
関連する記事 (tkinterでノートアプリ)
PySimpleGUIと同じような立ち位置としてtkinterというGUIライブラリがあります。
そちらを用いてノートアプリも作成しているので、こちらもよろしければ御覧ください