IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Python知识库 -> pyQt5线程池使用 -> 正文阅读

[Python知识库]pyQt5线程池使用

#! /usr/bin/env python
#coding=utf-8
import threading

from PyQt5 import QtCore
from PyQt5.QtWidgets import QApplication, QProgressBar
import sys
import time

class myThread (threading.Thread):
? ? def __init__(self, threadID, name, counter):
? ? ? ? threading.Thread.__init__(self)
? ? ? ? self.threadID = threadID
? ? ? ? self.name = name
? ? ? ? self.counter = counter
? ? def run(self):
? ? ? ? print ("开始线程:" + self.name)
? ? ? ? tasks = []
? ? ? ? for counter in range(1,101):
? ? ? ? ? ? task=Tasks(counter)
? ? ? ? ? ? task.start()
? ? ? ? ? ? tasks.append(task)
? ? ? ? for t in tasks:
? ? ? ? ? ? t.notify()
? ? ? ? ? ? time.sleep(0.05)
? ? ? ? Tasks.wait()
? ? ? ? print ("退出线程:" + self.name)

class Thread(QtCore.QRunnable):
? ??
? ? def __init__(self,num):
? ? ? ?super(Thread,self).__init__()
? ? ? ?self.num=num
? ? def run(self):
? ? ? ?print("Running Thread #%d" % self.num)
? ? ? ?#time.sleep(2)
?? ? ? #some say time.sleep will froze entire main thread(thus not recommended)

? ? ? QtCore.QThread.msleep(80)
? ? ? ?
#自定义信号槽如何把持http://www.cnblogs.com/codeio/archive/2011/08/30/2159030.html
class Tasks(QtCore.QObject):
? ??
? ? signal=QtCore.pyqtSignal(int)
? ? #signal must be declared outside the constructor but within class.
? ? def __init__(self,num):
? ? ? ?super(Tasks,self).__init__()
? ? ? ?self.pool=QtCore.QThreadPool.globalInstance()
? ? ? ?self.num=num
? ? ? ?self.signal.connect(proBar.setValue)
? ? ? ?#signal slot connection.watch out for parameter matching(type & count). ? ?
? ??
? ? def start(self):
? ? ? ?threadIns=Thread(self.num)
? ? ? ?self.pool.start(threadIns)
? ??
? ? def notify(self):
? ? ? ? self.signal.emit(self.num)
? ??
? ? @staticmethod
? ? def wait():
? ? ? ?QtCore.QThreadPool.globalInstance().waitForDone()
? ? ? ?

? ? ? ?
if __name__=="__main__":
? ?App=QApplication(sys.argv)
? ?print(QtCore.QThread.currentThreadId())
? ??
? ?proBar=QProgressBar()
? ?proBar.setWindowTitle("Nuclear Launch Progression")
? ?proBar.setValue(0)
? ?proBar.setGeometry(200,500,1000,30)
? ?proBar.show()

? ?# 这里在子线程里异步启动QThreadPool,并等待线程池结束,如果不异步启动的话会阻塞ui主线程
? ?th = myThread(1, 'thread-1', 1)
? ?th.start()
? ?sys.exit(App.exec_())

  Python知识库 最新文章
Python中String模块
【Python】 14-CVS文件操作
python的panda库读写文件
使用Nordic的nrf52840实现蓝牙DFU过程
【Python学习记录】numpy数组用法整理
Python学习笔记
python字符串和列表
python如何从txt文件中解析出有效的数据
Python编程从入门到实践自学/3.1-3.2
python变量
上一篇文章      下一篇文章      查看所有文章
加:2022-02-19 01:06:38  更:2022-02-19 01:08:48 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/15 23:47:56-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码