【发布时间】:2023-03-10 03:25:01
【问题描述】:
我无法在任何地方解决问题,所以我想是时候自己发布这个问题了。
这是我的代码:
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()
GUI 显示得非常好,没有错误。但问题出在以下部分:
if read == True:
reading = ser.readline()
print(reading[0:256])
当我按下“开始”按钮一次时,这部分代码应该连续运行。但它没有。这部分代码只执行一次,只要我按一次开始,然后按任何其他按钮。我该如何解决这个问题?
【问题讨论】:
-
对
readline()的调用将被阻塞,直到收到换行符。您需要将操作设为非阻塞,或将其移至可接受阻塞的专用非 GUI 线程。
标签: python user-interface pysimplegui