PyQt5学习(14):自定义信号与槽

本文详细介绍了PyQt5中如何自定义信号与槽,包括操作信号、定义带参数的槽函数、传递参数的方法及断开信号与槽的连接。重点讲述了使用lambda表达式解决信号参数传递问题,并探讨了PyQt5的事件处理方法,如重新实现事件函数、安装事件过滤器等。

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

1,信号与槽

使用pyqtSignal()函数创建一个或多喝重载的未绑定的信号作为类的属性,信号只能在QObject的子类中定义

信号必须在类创建时定义,不能在类创建后作为类的属性动态添加进去。

(1)操作信号

使用connect()函数可以把信号绑定到槽函数上。

使用disconnect()函数可以解除信号与槽函数的绑定

使用emit()函数可以发射信号

(2)自定义信号槽

方便带参数

流程:1,定义信号---》2,定义槽函数-------》3,连接信号与槽函数--------》4,发射信号

参考:https://www.cnblogs.com/XJT2018/p/10222981.html

from PyQt5.QtCore import pyqtSignal,QObject

class Signal(QObject):
    #定义信号带一个字符串参数
    signal=pyqtSignal(str)
    def __init__(self):
        super().__init__()
   
    def fn(self):
         #将信号连接到指定的槽函数
        self.signal.connect(self.signal_call)
        #发射信号
        self.signal.emit('hello')
    def signal_call(self,val):
        print('槽函数信息',val)
if __name__=='__main__':
    s=Signal()
    s.fn()


结果:槽函数 hello
from PyQt5.QtCore import pyqtSignal,QObject

class TextSignal(QObject):
    signal=pyqtSignal(int)  #传递一个int类型的值
    
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值