pyqt5多线程更新ui

举报
风吹稻花香 发表于 2021/06/05 00:42:14 2021/06/05
【摘要】 信号传参类型 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

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。