如何解决QLineEdit 在 while 循环内的 PYQT5 中不起作用
我在使用 pyqt5 更新 QLineEdit 时遇到了问题。下面是剥离的代码片段。 QlineEdit(即 self.ProgressEdit)在 self.initializeLineEdit 方法中使用“Testing”进行更新,但它没有在 self.on_pushButton_Download 方法中更新。如果我在“for 循环”之前更新 QlineEdit 但它在其中不起作用。
此外,我一直在使用侦听器和通知程序在代码中接收 CAN 数据包。这些数据包被解析并在代码中设置几个标志。这些标志在 while 循环中与计时器到期一起检查。
谁能指导我 QLineEdit 未更新的可能解决方案?另外,接收和解析 CAN 消息并发送下一条消息的最佳方法是什么?我把它保存在连续的 tx/rx 中。
class Download(QtWidgets.QMainWindow):
def initializeLineEdit(self):
self.ProgressEdit = QtWidgets.QLineEdit()
self.ProgressEdit.setReadOnly(True)
self.ProgressEdit.setText("Testing")
def on_pushButton_Download(self):
#Establish connection to DSP
for i in range(5):
self.startTimer(1000)
while not self.hasTimerExpired(): # if time is expired or Flag is Set(CAN received)
self.ProgressEdit.setText(str(i))
def startTimer(self,time):
self.mytimer = threading.Timer(time,self.onTimerExpire)
self.TimerExpireFlag = False
self.mytimer.start()
def onTimerExpire(self):
self.TimerExpireFlag = True
def stopTimer(self):
self.mytimer.cancel()
def hasTimerExpired(self):
return self.TimerExpireFlag
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。