微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

QLineEdit 在 while 循环内的 PYQT5 中不起作用

如何解决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 举报,一经查实,本站将立刻删除。