pyqt5多线程更新ui
【摘要】 信号传参类型 pyqtSignal() #无参数信号 pyqtSignal(int) ...
信号传参类型
pyqtSignal() #无参数信号
pyqtSignal(int) # 一个参数(整数)的信号
pyqtSignal([int],[str] # 一个参数(整数或者字符串)重载版本的信号
pyqtSignal(int,str) #二个参数(整数,字符串)的信号
pyqtSignal([int,int],[int,str]) #二个参数([整数,整数]或者[整数,字符串])重载版本
-
#coding=utf-8
-
from PyQt5.QtCore import *
-
from PyQt5.QtGui import *
-
from PyQt5.QtWidgets import *
-
import time
-
-
'''
-
信号传参类型
-
pyqtSignal() #无参数信号
-
pyqtSignal(int) # 一个参数(整数)的信号
-
pyqtSignal([int],[str] # 一个参数(整数或者字符串)重载版本的信号
-
pyqtSignal(int,str) #二个参数(整数,字符串)的信号
-
pyqtSignal([int,int],[int,str]) #二个参数([整数,整数]或者[整数,字符串])重载版本
-
'''
-
-
-
class Mythread(QThread):
-
# 定义信号,定义参数为str类型
-
breakSignal = pyqtSignal(str,list)
-
-
def __init__(self, parent=None):
-
super().__init__(parent)
-
# 下面的初始化方法都可以,有的python版本不支持
-
# super(Mythread, self).__init__()
-
-
def run(self):
-
for i in range(2000000):
-
# 发出信号
-
print(12)
-
a=[i,i+1]
-
self.breakSignal.emit(str(i),a)
-
# 让程序休眠
-
time.sleep(0.5)
-
-
-
if __name__ == '__main__':
-
app = QApplication([])
-
dlg = QDialog()
-
dlg.resize(400, 300)
-
dlg.setWindowTitle("自定义按钮测试")
-
dlgLayout = QVBoxLayout()
-
dlgLayout.setContentsMargins(40, 40, 40, 40)
-
btn = QPushButton('测试按钮')
-
dlgLayout.addWidget(btn)
-
dlgLayout.addStretch(40)
-
dlg.setLayout(dlgLayout)
-
dlg.show()
-
-
-
def chuli(a,s):
-
# dlg.setWindowTitle(s)
-
btn.setText(a+str(s[0]*10))
-
-
# 创建线程
-
thread = Mythread()
-
# # 注册信号处理函数
-
thread.breakSignal.connect(chuli)
-
# # 启动线程
-
thread.start()
-
dlg.exec_()
-
app.exit()
文章来源: blog.csdn.net,作者:网奇,版权归原作者所有,如需转载,请联系作者。
原文链接:blog.csdn.net/jacke121/article/details/78660545
【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)