python

超轻量级php框架startmvc

pyQt5实时刷新界面的示例

更新时间:2020-07-08 15:42:01 作者:startmvc
如下所示:fromPyQt5.QtCoreimportQThread,pyqtSignal,QDateTime,QObjectfromPyQt5.QtWidgetsimportQApplication,QDialog,Q

如下所示:


from PyQt5.QtCore import QThread , pyqtSignal, QDateTime , QObject
from PyQt5.QtWidgets import QApplication, QDialog, QLineEdit
import time
import sys

class BackendThread(QObject):
 # 通过类成员对象定义信号
 update_date = pyqtSignal(str)
 
 # 处理业务逻辑
 def run(self):
 while True:
 data = QDateTime.currentDateTime()
 currTime = data.toString("yyyy-MM-dd hh:mm:ss")
 self.update_date.emit( str(currTime) )
 time.sleep(1)

class Window(QDialog):
 def __init__(self):
 QDialog.__init__(self)
 self.setWindowTitle('PyQt 5界面实时更新例子')
 self.resize(400, 100)
 self.input = QLineEdit(self)
 self.input.resize(400, 100)
 self.initUI()

 def initUI(self):
 # 创建线程
 self.backend = BackendThread()
 # 连接信号
 self.backend.update_date.connect(self.handleDisplay)
 self.thread = QThread()
 self.backend.moveToThread(self.thread)
 # 开始线程
 self.thread.started.connect(self.backend.run)
 self.thread.start()

 # 将当前时间输出到文本框
 def handleDisplay(self, data):
 self.input.setText(data)

if __name__ == '__main__':
 app = QApplication(sys.argv)
 win = Window()
 win.show() 
 sys.exit(app.exec_())

以上这篇pyQt5实时刷新界面的示例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持脚本之家。

pyQt5 实时 刷新 界面