前提・実現したいこと
質問させてください。
PySimpleGUIで作成したテキストに.updateを実行した後に3秒間ディレイをおき、
もう一度.updateを実行するコードを書きたいと思っています。
一度目の.updateが実行されてから、変更がウィンドウに反映されるのに時間がかかるのが
原因なのでは?と考えているのですが、初心者ゆえ解決方法が分からず諦めてしまいました。
何か方法はありますでしょうか?お願いします。
ボタン「文」を押してから InputText に "ようこそ" を表示し、
3秒後に "プログラムを起動します" を表示する例としてお願いします。
発生している問題・エラーメッセージ
window["tx1"].update("ようこそ")
の実行が反映されず、
time.sleep(3)
window["tx1"].update("プログラムを起動します")
だけが反映される。
該当のソースコード
Python
1import time 2import PySimpleGUI as sg 3 4#ウィンドウ作成 5layout = [[sg.InputText("",size=(35,1),key="tx1",text_color="#0000ff",background_color="#ffff00")], 6 [sg.Button("文",key="bt1")], 7 [sg.Button("clear",key="bt2"),sg.Button("Quit",key="bt3")]] 8window = sg.Window("sleep",layout) 9 10#イベントループ 11while True: 12 event, values = window.read() 13 if event in (None,"bt3"): 14 break 15 elif event == "bt1": 16 window["tx1"].update("ようこそ") 17 time.sleep(3) 18 window["tx1"].update("プログラムを起動します") 19 elif event == "bt2": 20 window["tx1"].update("") 21 22#終了処理 23window.close() 24
補足情報(FW/ツールのバージョンなど)
Python3.6
PySimpleGUI
Windows10
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/12/13 06:45
2020/12/13 09:12