前提
PythonのGUI機能のカレンダーを利用し、日付選択ができ
表示まではされるがその日付の値を後続の処理に利用したいので
返り値またはグローバル変数として取得したい。
※独学かつ初心者のためソースコードの汚さはご容赦いただけますようよろしくお願い致します。
実現したいこと
PythonのGUI機能のカレンダーを利用し、日付選択後
その指定した日付を返り値またはグローバル変数へ代入を行いたい。
該当のソースコード
python
1import PySimpleGUI 2 3layout = [[PySimpleGUI.Text(key='-text_date-', size=(20,1)), 4 PySimpleGUI.CalendarButton('日付選択', 5 locale = 'ja_JP', 6 format='%Y/%m/%d', 7 month_names=[ "{:>2d}月".format(m) for m in range(1, 13) ], 8 key = '-button_calendar-', 9 target = '-text_date-')], 10 [PySimpleGUI.Exit()]] 11datedata = PySimpleGUI.Text 12 13window = PySimpleGUI.Window('カレンダー', layout) 14while True: 15 event, values = window.read() 16 17 print(event, values) 18 19 if event in (PySimpleGUI.WIN_CLOSED, 'Exit'): 20 break 21 22window.close()
試したこと
python
1import PySimpleGUI 2 3layout = [[PySimpleGUI.Text(key='-text_date-', size=(20,1)), 4 PySimpleGUI.CalendarButton('日付選択', 5 locale = 'ja_JP', 6 format='%Y/%m/%d', 7 month_names=[ "{:>2d}月".format(m) for m in range(1, 13) ], 8 key = '-button_calendar-', 9 target = '-text_date-')], 10 [PySimpleGUI.Exit()]] 11datedata = PySimpleGUI.Text 12 13window = PySimpleGUI.Window('カレンダー', layout) 14while True: 15 event, values = window.read() 16 datedata = layout.target 17 print(event, values) 18 19 if event in (PySimpleGUI.WIN_CLOSED, 'Exit'): 20 break 21 22window.close()
上記の様にWhile文の中に datedata = layout.targetを入力したところ
例外が発生しました: AttributeError
'list' object has no attribute 'target'
File line 50, in <module>
datedata = layout.target
と表示された。
補足情報(FW/ツールのバージョンなど)
Pythonバージョン:3.10.6

回答1件
あなたの回答
tips
プレビュー
下記のような回答は推奨されていません。
このような回答には修正を依頼しましょう。
また依頼した内容が修正された場合は、修正依頼を取り消すようにしましょう。
2023/01/27 05:53