7. PyQt5 中的多线程的使用(下)
2024-10-20 20:58:22
专栏地址 ʅ(‾◡◝)ʃ
紧接着上一节, 这一节具体介绍 图形化界面 如何给 任务线程传递数据
7.1
from form import Ui_Form
from PyQt5.QtWidgets import *
from PyQt5.QtCore import QThread, pyqtSignal
import sys
import time
class MyWin(QWidget,Ui_Form):
"""docstring for Mywine"""
def __init__(self):
super(MyWin, self).__init__()
self.setupUi(self)
self.mythread = MyThread() # 实例化自己建立的任务线程类
self.mythread.signal.connect(self.callback) #设置任务线程发射信号触发的函数
def test(self): # 这里test就是槽函数, 当点击按钮时执行 test 函数中的内容, 注意有一个参数为 self
self.mythread.data = 5 # 这句就是给线程的实例化一个属性给其赋值,在线程里面就可以调用了
self.mythread.start() # 启动任务线程
def callback(self,i): # 这里的 i 就是任务线程传回的数据
self.pushButton.setText(i)
class MyThread(QThread): # 建立一个任务线程类
signal = pyqtSignal(str) #设置触发信号传递的参数数据类型,这里是字符串
def __init__(self):
super(MyThread, self).__init__()
def run(self): # 在启动线程后任务从这个函数里面开始执行
print(self.data) # 调用传递过来的数据
if __name__ == '__main__':
app = QApplication(sys.argv)
mywin = MyWin() # 实例化一个窗口小部件
mywin.setWindowTitle('Hello world!') # 设置窗口标题
mywin.show() #显示窗口
sys.exit(app.exec())
这是一个很简单的例子来传递通过图形化界面的逻辑给线程传递数据,当然其实在真正的开发应用中,线程都用来处理比较费时间的任务,而不是这种只是简单的来一个输出。
下节做一个实战,写一个简单的下载CSDN博客文章的小软件
最新文章
- 数据结构和算法 – 7.散列和 Hashtable 类
- Linux 通过YUM安装rzsz
- PCIE卡槽还能这样用!
- 盘点:#AzureChat - 虚拟机和自动伸缩
- MySQL最常用数值函数
- 201621123088《Java程序设计》第1周学习总结
- dojo实现省份地市级联---省份数据源
- [易飞]设置导入导出规则-小BUG
- wsl
- MyBatis知识点总结(一)
- Linux 对文件进行加密存放
- 关于面试总结10-selenium中隐藏元素如何定位?(hidden、display: none)
- IE下推断IE版本号的语句
- spring cloud 之 Feign 使用HTTP请求远程服务
- python的内置下载器
- PHP 通过实现 Iterator(迭代器)接口来读取大文件文本
- shell -- sample -- 关闭tomcat
- Python DataFrame导出CSV、数据库
- HTML Forms(转)
- Faster R-CNN教程
热门文章
- C#,使用NPOI,导出excel文件
- [Python]-pandas模块-机器学习Python入门《Python机器学习手册》-02-加载数据:加载文件
- 安装vm,在vm中安装windows10操作系统。
- 关于使用kuboard安装其自带的监控应用授权普通用户使用
- Elasticsearch:Elasticsearch-head - 用于浏览和与 Elasticsearch 集群进行交互的 Web 前端
- 安装jumpserver 2.1.2版本遇到的坑
- 分布式存储系统之Ceph集群访问接口启用
- img通过修改css等比例缩小图片
- proxy解决跨域问题
- 分布式存储系统之Ceph集群CephX认证和授权