转载:pyqt的signal和solit

本文通过一个具体的PyQt5实例,详细介绍了信号(signal)与槽(slot)机制的使用方法,包括不同类型的信号定义、连接及触发过程,并演示了如何实现参数传递。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

转自:http://blog.youkuaiyun.com/hlqyq/article/details/6713828

 

import sys
from PyQt5.QtCore import pyqtSignal, pyqtSlot, Qt
from PyQt5.QtWidgets import QWidget, QApplication class MyWidget(QWidget): Signal_NoParameters = pyqtSignal() Signal_OneParameter = pyqtSignal(int) Signal_OneParameter_Overload =pyqtSignal([int],[str]) Signal_TwoParameters = pyqtSignal(int,str) Signal_TwoParameters_Overload =pyqtSignal([int,int],[int,str]) def mousePressEvent(self, event): self.Signal_NoParameters.emit() self.Signal_OneParameter.emit(1) self.Signal_OneParameter_Overload.emit(1) self.Signal_OneParameter_Overload[str].emit("abc") self.Signal_TwoParameters.emit(1,"abc") self.Signal_TwoParameters_Overload.emit(1,2) self.Signal_TwoParameters_Overload[int, str].emit(1,"abc") @pyqtSlot() def setValue_NoParameters(self): print('''无参数槽方法''') pass @pyqtSlot(int) def setValue_OneParameter(self,nIndex): print( '''一个参数(整数)槽方法''', nIndex) pass @pyqtSlot(str) def setValue_OneParameter_String(self,szIndex): print( '''一个参数(字符串)的槽方法''', szIndex) pass ##@pyqtSlot(int,int) def setValue_TwoParameters(self,x,y): print( '二个参数(整数,整数)槽方法', x, y) pass ## @pyqtSlot(int,str) 加不加槽修饰没看出来啥区别。。。 def setValue_TwoParameters_String(self,x,yx): print('二个参数(整数,字符串)槽方法', x, yx) pass app = QApplication(sys.argv) widget = MyWidget() widget.show() widget.Signal_NoParameters.connect(widget.setValue_NoParameters,Qt.QueuedConnection) widget.Signal_OneParameter.connect(widget.setValue_OneParameter,Qt.QueuedConnection) widget.Signal_OneParameter_Overload[int].connect(widget.setValue_OneParameter,Qt.QueuedConnection) widget.Signal_OneParameter_Overload[str].connect(widget.setValue_OneParameter_String,Qt.QueuedConnection) widget.Signal_TwoParameters.connect(widget.setValue_TwoParameters,Qt.QueuedConnection) widget.Signal_TwoParameters_Overload[int,int].connect(widget.setValue_TwoParameters,Qt.QueuedConnection) widget.Signal_TwoParameters_Overload[int,str].connect(widget.setValue_TwoParameters_String,Qt.QueuedConnection) sys.exit(app.exec_())

 

signal即可以和solit连接,也可以和signal连接。

 

转载于:https://www.cnblogs.com/ribavnu/p/4633561.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值