限定しりとり

現在、自分用のアプリを初めてPythonで作っています。
気象庁発表の過去の天気をChromeで検索するアプリです。

ボタン名を状況に合わせて変更するトグルボタンの作成を考えています。例えば、[ON]と[OFF]とかです。現在どの状態であるかの判断を、そのボタン名でしたいと思っています。
そのためのボタン名の取得方法をお教えください。
まぁ、それ用の変数を作ればよい話ですが。

よろしくお願いします。

質問者からの補足コメント

  • レイアウトの設定を示します。
    layout = [
    [ sg.Text(' 天気検索アプリ',
    font=('yu Gothic UI',14))],
    [ sg.Text('地  点: ',
    font=('yu Gothic UI',14),key='txtLoc')],
    :
    :
    sg.Submit(button_text='ページを表示',
    font=('yu Gothic UI',11),size=(13,2),key='btnPage'),
    sg.Submit(button_text='終わる',
    :

      補足日時:2022/03/17 21:48
  • 下記のステートメントもエラーになっています。
    print('ボタン名:', values['btnPage'])
    エラー内容:NameError: name 'values' is not defined

      補足日時:2022/03/17 22:29
  • teratailのサポートで解決しました。
    ボタン名の参照か下記で可能です。
    window["btnPage"].ButtonText

      補足日時:2022/03/21 13:54

A 回答 (1件)

全くの未経験でググっただけです。


直接の回答にはなってませんが、自分的にはこれなのかなと思ったものです。

https://www.simugrammer.com/python_pysimplegui_i …
真ん中辺りの
『サンプルプログラム2 簡単な画像変換・表示アプリ:ソースコード』


if values['INPUT_FILE'] != '':

識別のコントロールテキスト?名前?の値を比較演算子で調べてます。
なので

values['INPUT_FILE']

これで値を取得できるのではないのかな~って思いましたけど、検証できないので間違っていたらごめんなさい。
    • good
    • 0
この回答へのお礼

早速の回答ありがとうございます。

試しに次のステートメントを追加してみました。
print('ボタン名:', window['btnPage'])

その結果は、次のように正しく実行されました。
ボタン名: <PySimpleGUI.PySimpleGUI.Button object at 0x00000259095F06A0>

それで、下記のステートメントを試しましたが、何れも同じエラーとなりました。
print('ボタン名:', window['btnPage'].text)
エラー内容は、AttributeError: 'Button' object has no attribute 'text'

print('ボタン名:', window['btnPage'].values)
エラー内容は、AttributeError: 'Button' object has no attribute 'values'

あと一息のところまで来ているようです。

お礼日時:2022/03/17 21:03

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!