前提
こんにちは、教えていただきたいです。
PySimpleGui使って、GUIウィンドウを作成して、その中にスライダーを配置しています。
GUIウィンドウを閉じる(×ボタン、Exitボタン)ときにスライダーの値をテキストに
書き出したいと思っています。
発生している問題・エラーメッセージ
Exitボタンを押して閉じるときには、問題なくテキストに値が書き込めますが、
×ボタンを押したときには、エラーメッセージが出て、書き込めていません。
エラーメッセージ f.write(str(values['SLIDER1'])) TypeError: 'NoneType' object is not subscriptable
該当のソースコード
Python
1import PySimpleGUI as sg 2 3layout = [ 4 [sg.Slider((0, 100), key='SLIDER1')], 5 [sg.Button('Exit')], 6] 7 8window = sg.Window("test", layout) 9 10while True: 11 event, values = window.read(timeout=1000) 12 13 if event in (sg.WINDOW_CLOSED, 'Exit'): #閉じるときに値を書き出し 14 with open('a.txt', 'w') as f: 15 f.write(str(values['SLIDER1'])) 16 break 17 18window.close()
質問
スライダーの値は values['SLIDER1']で取り出すしかないと思っているのですが、
if event in (sg.WINDOW_CLOSED, 'Exit')
×ボタンとExitボタンで何故挙動が異なるのか疑問です。
回答1件
良いと思った回答にはグッドを送りましょう。
グッドが多くついた回答ほどページの上位に表示されるので、他の人が素晴らしい回答を見つけやすくなります。
下記のような回答は推奨されていません。
このような回答には修正を依頼しましょう。
2022/11/08 14:29