这个用到了线程,利用信号与槽,在2个线程之间相互传递数据。
#2个线程之间互相传递数据 from PyQt5.QtCore import * from PyQt5.QtWidgets import * import time import sys class BackendThread(QThread): updata=pyqtSignal(str)#定义参数为字符串的信号 def run(self): while True: data=QDateTime.currentDateTime()#获取时间 currentTime=data.toString("yyyy-MM-dd hh:mm:ss") self.updata.emit(str(currentTime))#发射函数 time.sleep(1)# 每1秒循环一次 class ThreadUpdata(QDialog): def __init__(self): super().__init__() self.setWindowTitle("多线程更新UI数据") self.resize(400,400) self.input=QLineEdit(self) self.input.resize(400,100) self.initUI() def initUI(self): self.backend=BackendThread()#声明自定义的线程类的变量 self.backend.updata.connect(self.hand)#信号与槽函数连接 self.backend.start()#启动线程 def hand(self,data): self.input.setText(data) if __name__ == '__main__': app = QApplication(sys.argv) exam=ThreadUpdata() exam.show() sys.exit(app.exec_())
结果: