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])          #二个参数([整数,整数]或者[整数,字符串])重载版本

 


  
  1. #coding=utf-8
  2. from PyQt5.QtCore import *
  3. from PyQt5.QtGui import *
  4. from PyQt5.QtWidgets import *
  5. import time
  6. '''
  7. 信号传参类型
  8. pyqtSignal() #无参数信号
  9. pyqtSignal(int) # 一个参数(整数)的信号
  10. pyqtSignal([int],[str] # 一个参数(整数或者字符串)重载版本的信号
  11. pyqtSignal(int,str) #二个参数(整数,字符串)的信号
  12. pyqtSignal([int,int],[int,str]) #二个参数([整数,整数]或者[整数,字符串])重载版本
  13. '''
  14. class Mythread(QThread):
  15. # 定义信号,定义参数为str类型
  16. breakSignal = pyqtSignal(str,list)
  17. def __init__(self, parent=None):
  18. super().__init__(parent)
  19. # 下面的初始化方法都可以,有的python版本不支持
  20. # super(Mythread, self).__init__()
  21. def run(self):
  22. for i in range(2000000):
  23. # 发出信号
  24. print(12)
  25. a=[i,i+1]
  26. self.breakSignal.emit(str(i),a)
  27. # 让程序休眠
  28. time.sleep(0.5)
  29. if __name__ == '__main__':
  30. app = QApplication([])
  31. dlg = QDialog()
  32. dlg.resize(400, 300)
  33. dlg.setWindowTitle("自定义按钮测试")
  34. dlgLayout = QVBoxLayout()
  35. dlgLayout.setContentsMargins(40, 40, 40, 40)
  36. btn = QPushButton('测试按钮')
  37. dlgLayout.addWidget(btn)
  38. dlgLayout.addStretch(40)
  39. dlg.setLayout(dlgLayout)
  40. dlg.show()
  41. def chuli(a,s):
  42. # dlg.setWindowTitle(s)
  43. btn.setText(a+str(s[0]*10))
  44. # 创建线程
  45. thread = Mythread()
  46. # # 注册信号处理函数
  47. thread.breakSignal.connect(chuli)
  48. # # 启动线程
  49. thread.start()
  50. dlg.exec_()
  51. app.exit()
 

文章来源: blog.csdn.net,作者:网奇,版权归原作者所有,如需转载,请联系作者。

原文链接:blog.csdn.net/jacke121/article/details/78660545

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

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

全部回复

上滑加载中

设置昵称

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

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

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