有的信号在Pyqt5本身是没有的,比如说双击一个按钮,右击一个按钮
目录
1 创建自定义信号
首先我们应该自定义一个类
我们需要在自定义类中创建一个类属性,类属性pyqtSignal()对象
信号实际上是事件的扩展,定义信号我们需要对事件进行操作
我们无论是要创建双击信号或是右击信号,本质上都是按下事件松开事件的处理
我们应该重写事件,为了不影响其他信号的使用所以我们首先应该继承原本的方法
在我们的事件中,有button()这个方法能得知我们点的是左键还是右键
我们就先测试一下button
运行后,我们对按钮先点击一下左键再点击一下右键
- 我们也可以按中键,如果鼠标有别的键也可以试一下,最常用的是左键和右键
我们此时做出判定,如果是右键点击则触发这个信号
然后在下方连接槽函数
此时运行一下,然后右键点击按钮
2 自定义信号在Qt.designer中的使用
如果要在QTDesigner中使用自定义信号,进入这个界面后点击这个按钮
点击这个按钮添加信号
然后再到这里面把信号名称输入进去就可以了
比如说我的信号名称是rightClicked,我们就输入rightClicked()然后点击确定就可以了
3 自定义信号传递参数
我们也可以使用自定义信号传递参数
比如我们现在把按钮上的字传递出去
在定义信号时输入数据类型,在信号发射输入传递内容
然后接收这个参数
运行后我们右键点击按钮
传递的参数有可能会根据槽函数的不同需求进行重载(既可以传出str也可以传出int)
我们可以这样写,这个的意思就是这个信号有可能传出str也有可能传出int
然后我们发射的时候就改成这样,我们再加入一个传输int数据的通道
我们下面使用int的数据试一下
运行之后右键点击按钮
当然也可以一次传递两个参数
运行后右键点击一下按钮