pyqtSignal的简单使用及用法是什么
Admin 2022-11-01 群英技术资讯 551 次浏览
下面包含了对pyqtSignal的基础使用,包括多参数
因为较为简单,就当作参考书吧~~
然后信号可以接收多个信号源哦~下面也有举例 (mousePressEvent 和 buttonClicked2)
import sys from PyQt5.QtWidgets import QWidget, QPushButton, QApplication, QMainWindow, QHBoxLayout from PyQt5.QtCore import Qt, pyqtSignal class CMainWindow(QMainWindow): signalTest = pyqtSignal() signalTest1 = pyqtSignal(str) signalTest2 = pyqtSignal(float, float) def __init__(self): super().__init__() # 确认PushButton设置 btn = QPushButton("无参信号") btn.clicked.connect(self.buttonClicked) btn1 = QPushButton("单参信号") btn1.clicked.connect(self.buttonClicked1) btn2 = QPushButton('双参信号') btn2.clicked.connect(self.buttonClicked2) hBox = QHBoxLayout() hBox.addStretch(1) hBox.addWidget(btn) hBox.addWidget(btn1) hBox.addWidget(btn2) widget = QWidget() self.setCentralWidget(widget) widget.setLayout(hBox) self.signalTest.connect(self.signalNone) self.signalTest1.connect(self.signalOne) self.signalTest2.connect(self.signalTwo) self.setWindowTitle('pysignal的使用') self.show() def signalNone(self): print("无参信号,传来的信息") def signalOne(self, arg1): print("单参信号,传来的信息:", arg1) def signalTwo(self, arg1, arg2): print("双参信号,传来的信息:", arg1, arg2) def mousePressEvent(self, event): self.signalTest2.emit(event.pos().x(), event.pos().y()) def buttonClicked(self): self.signalTest.emit() def buttonClicked1(self): self.signalTest1.emit("我是单参信号传来的") def buttonClicked2(self): self.signalTest2.emit(0, 0) def keyPressEvent(self, e): if e.key() == Qt.Key_Escape: self.close() if __name__ == '__main__': app = QApplication(sys.argv) MainWindow = CMainWindow() sys.exit(app.exec_())
from PyQt5.QtCore import QObject , pyqtSignal class CustSignal(QObject): #声明无参数的信号 signal1 = pyqtSignal() #声明带一个int类型参数的信号 signal2 = pyqtSignal(int) #声明带int和str类型参数的信号 signal3 = pyqtSignal(int,str) #声明带一个列表类型参数的信号 signal4 = pyqtSignal(list) #声明带一个字典类型参数的信号 signal5 = pyqtSignal(dict) #声明一个多重载版本的信号,包括带int和str类型参数的信号和带str类型参数的信号 signal6 = pyqtSignal([int,str], [str]) def __init__(self,parent=None): super(CustSignal,self).__init__(parent) #将信号连接到指定槽函数 self.signal1.connect(self.signalCall1) self.signal2.connect(self.signalCall2) self.signal3.connect(self.signalCall3) self.signal4.connect(self.signalCall4) self.signal5.connect(self.signalCall5) self.signal6[int,str].connect(self.signalCall6) self.signal6[str].connect(self.signalCall6OverLoad) #发射信号 self.signal1.emit() self.signal2.emit(1) self.signal3.emit(1,"text") self.signal4.emit([1,2,3,4]) self.signal5.emit({"name":"tao","age":"25"}) self.signal6[int,str].emit(1,"text") self.signal6[str].emit("text") def signalCall1(self): print("signal1 emit") def signalCall2(self,val): print("signal2 emit,value:",val) def signalCall3(self,val,text): print("signal3 emit,value:",val,text) def signalCall4(self,val): print("signal4 emit,value:",val) def signalCall5(self,val): print("signal5 emit,value:",val) def signalCall6(self,val,text): print("signal6 emit,value:",val,text) def signalCall6OverLoad(self,val): print("signal6 overload emit,value:",val) if __name__ == '__main__': custSignal = CustSignal() 运行结果:
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:mmqy2019@163.com进行举报,并提供相关证据,查实之后,将立刻删除涉嫌侵权内容。
猜你喜欢
目录元组的创建元组的删除元组部分元素的输出元组的嵌套元组元素的个数计算:len()元组中的元素最大最小值的求解:max(),min()元组中某元素出现的次数:count函数元组中某元素的
本篇文章给大家带来了关于Python的相关知识,其中主要整理了解析参数的三种方法相关问题,第一个选项是使用 argparse,它是一个流行的 Python 模块,专门用于命令行解析;另一种方法是读取 JSON 文件,我们可以在其中放置所有超参数;第三种也是鲜为人知的方法是使用 YAML 文件,下面一起来看一下,希望对大家有帮助。
这篇文章主要介绍python稀疏矩阵用法,下文有具体的介绍和示例,有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章能有所收获,接下来小编带着大家一起了解看看吧。
这篇文章主要介绍了Python用来做Web开发的优势有哪些,Python适合从简单到复杂的各种Web项目。它广泛用于旅行,医疗保健,交通运输,金融等不同领域,用于Web开发和软件测试,脚本编写和生成。
这篇文章主要为大家介绍了python神经网络使用slim函数进行模型的训练及保存模型示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
成为群英会员,开启智能安全云计算之旅
立即注册Copyright © QY Network Company Ltd. All Rights Reserved. 2003-2020 群英 版权所有
增值电信经营许可证 : B1.B2-20140078 粤ICP备09006778号 域名注册商资质 粤 D3.1-20240008