python pyqt5 多线程与信号

-- coding: utf-8 --

"""
【简介】
多线程更新跟新数据,pyqt5界面实时刷新例子

"""

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

class BackendThread(QThread):
# 通过类成员对象定义信号对象
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('pyqt5界面实时更新例子')
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.backend.start()

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

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

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容