如何解决如何在 PySimpleGUI 代码中实现一个不断运行的循环?
我无法在任何地方解决问题,所以我想是时候自己发布这个问题了。
这是我的代码:
oSomething
import serial
from serial import Serial
import PySimpleGUI as sg
ser = serial.Serial('COM3',115200,timeout=1)
read = False
sg.theme('DarkAmber')
layout = [ [sg.InputText(),sg.Button('Empfindlichkeit einstellen')],[sg.Button('start'),sg.Button('end')] ]
window = sg.Window('Window Title',layout)
while True:
event,values = window.read()
if read == True:
reading = ser.readline()
print(reading[0:256])
if event == "start":
read = True
if event == sg.WIN_CLOSED or event == 'end':
break
window.close()
当我按下“开始”按钮一次时,这部分代码应该连续运行。但它没有。这部分代码只执行一次,只要我按下开始一次然后按下任何其他按钮。我该如何解决这个问题?
解决方法
event,values = window.read()
它会停在这里等待事件发生。第一次点击“开始”按钮后,
if event == "start":
read = True
变量 read
在该事件之后设置为 True
,然后再次返回 window.read()
以等待另一个事件。没有更多的活动,所以在那里等待。
为了避免在那里等待事件,您可以在方法 timeout
中使用选项 window.read()
来确定等待的时间。
event,values = window.read(timeout=100) # 100 ms to wait
选项 timeout
,如果没有其他 GUI 事件先发生,则等待 Read 返回的毫秒数。默认事件或键为 __TIMEOUT__
。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。