pyqtSignal的简单使用及用法是什么
Admin 2022-11-01 群英技术资讯 1559 次浏览
关于“pyqtSignal的简单使用及用法是什么”的知识有一些人不是很理解,对此小编给大家总结了相关内容,具有一定的参考借鉴价值,而且易于学习与理解,希望能对大家有所帮助,有这个方面学习需要的朋友就继续往下看吧。下面包含了对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进行举报,并提供相关证据,查实之后,将立刻删除涉嫌侵权内容。
猜你喜欢
这篇文章主要介绍了pytest fixtures函数及测试函数的参数化解读,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
这篇文章主要介绍了python数据结构算法分析,在python的数据结构的章节中,我们上次学习到了python面向对象的思想,即我们想用程序来实现一个东西,我们需是用对象的特征来描述我们想构建的对象。感兴趣的小伙伴可以查看下面内容</P><P>
这篇文章主要介绍了Python连接数据库使用matplotlib画柱形图,文章通过实例展开对主题的相关介绍。具有一定的知识参考价值性,感兴趣的小伙伴可以参考一下
内容介绍一、思考二、代码实现三、展示总结一、思考想要完成记事本,我们首先需要考虑一个正常的记事本都需要具有哪些功能,我们将这些功能按键添加到我们的UI界面上即可。一般功能如下:新建文本文档打开本地文件
这篇文章主要给大家介绍了关于Python编写可视化界面的相关资料,主要使用了Python+PyCharm+PyQt,文中通过实例代码介绍的非常详细,需要的朋友可以参考下
成为群英会员,开启智能安全云计算之旅
立即注册关注或联系群英网络
7x24小时售前:400-678-4567
7x24小时售后:0668-2555666
24小时QQ客服
群英微信公众号
CNNIC域名投诉举报处理平台
服务电话:010-58813000
服务邮箱:service@cnnic.cn
投诉与建议:0668-2555555
Copyright © QY Network Company Ltd. All Rights Reserved. 2003-2020 群英 版权所有
增值电信经营许可证 : B1.B2-20140078 ICP核准(ICP备案)粤ICP备09006778号 域名注册商资质 粤 D3.1-20240008