PyQt5基础学习-两个线程进行信号交互
2022/2/7 23:22:45
本文主要是介绍PyQt5基础学习-两个线程进行信号交互,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
步骤: 在主线程中实例化并且启动子线程,然后由子线程通过信号发送器向主线程发送信号
ThreadUpdateUI.py
""" 多线程更新UI数据(在两个线程中传递函数) """ 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) #在子线程start以后, 自动调用 #主要功能是发送当前的时间 def run(self): while True: data = QDateTime.currentDateTime() currentTime = data.toString("yyyy-MM-dd hh:mm:ss") self.update_date.emit(str(currentTime)) time.sleep(1) class ThreadUpdate(QDialog): def __init__(self): super(ThreadUpdate, self).__init__() self.setWindowTitle("多线程更新UI数据") self.resize(400, 100) self.input = QLineEdit(self) self.input.resize(400, 100) self.initUI() def initUI(self): #构造子线程 self.backbend = BackendThread() #在主线程定义, 子线程的信号槽函数 self.backbend.update_date.connect(self.handleDisplay) #start以后会调用run函数 self.backbend.start() def handleDisplay(self, data): self.input.setText(data) if __name__ == "__main__": app = QApplication(sys.argv) main = ThreadUpdate() main.show() sys.exit(app.exec_())
这篇关于PyQt5基础学习-两个线程进行信号交互的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-09-28AI给的和自己写的Python代码,都无法改变输入框的内容,替换也不行
- 2024-09-27Sentinel配置限流资料:新手入门教程
- 2024-09-27Sentinel配置限流资料详解
- 2024-09-27Sentinel限流资料:新手入门教程
- 2024-09-26Sentinel限流资料入门详解
- 2024-09-26Springboot框架资料:初学者入门教程
- 2024-09-26Springboot框架资料详解:新手入门教程
- 2024-09-26Springboot企业级开发资料:新手入门指南
- 2024-09-26SpringBoot企业级开发资料新手指南
- 2024-09-26Springboot微服务资料入门教程