Python - PyQt中信号/槽函数的使用

13 篇文章 17 订阅
5 篇文章 8 订阅

1、PyQt中信号的定义

from PyQt5.QtCore import Qt, pyqtSignal        // 引入模块

class TestSignal(QWidget):
    
    # 创建自定义信号,只能定义成类变量#
    mySignal_1 = pyqtSignal()      # 创建信号,用于发送按钮已点击信号;
    mySignal_2 = pyqtSignal([str]) # 用于发送默认文件打开路径信号;信号有一个str类型的参数

如上所示,首先引入对应的模块pyqtSignal,然后在定义的类中定义信号。需要注意的是,信号只能定义成类变量,而不能定义成对象变量,最直观的就是在定义信号时,没有self.。 

2、PyQt中槽函数的定义

槽函数的定义就是普通的函数定义,但是需要注意的是,如果槽函数对应的信号有参数,那么槽函数也要有对应的参数,可以参考如下:

def Slot_mySignal_1(self):                // 对应的信号无参
    // do something

def Slot_mySignal_2(self, str):        // 对应的信号有[str]类型的参数
    str1 = str
    // do something

3、关联信号/槽函数

信号与槽函数的关联与QT中类似,都是用connect函数,但是用法又与QT中不同,在PyQt中的用法如下:

Test.mySignal_1.connect(self.Slot_mySignal_1)
Test.mySignal_2.connect(self.Slot_mySignal_2)

4、发送信号

 信号的发送:

# 无参数
TestSignal.mySignal_1.emit()

# 有参数
TestSignal.mySignal_2.emit(str)

5、示例

 示例如下:

from PyQt5.QtCore import Qt, pyqtSignal        // 引入模块

class TestSignal(QWidget):
    
    # 创建自定义信号,只能定义成类变量#
    mySignal_1 = pyqtSignal()      # 创建信号,用于发送按钮已点击信号;
    mySignal_2 = pyqtSignal([str]) # 用于发送默认文件打开路径信号;信号有一个str类型的参数

    def __init__(self):                        // 初始化函数
        
        Test.mySignal_1.connect(self.Slot_mySignal_1)
        Test.mySignal_2.connect(self.Slot_mySignal_2)

    def Slot_mySignal_1(self):                 // 对应的信号无参

        // do something

    def Slot_mySignal_2(self, str):           // 对应的信号有[str]类型的参数
        str1 = str
        // do something

    def Send_signal(self):
        str1 = 'test'
        self.mySignal_1.emit()
        self.mySignal_2.emit(str1)

 

  • 7
    点赞
  • 35
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值