pyqtSignal的使用基础

这篇博客介绍了PyQTSignal的基本用法,包括如何创建和连接信号,以及如何处理多参数信号。示例代码展示了如何在QMainWindow中定义和触发不同参数类型的信号,如无参、单参和双参信号,并通过mousePressEvent和buttonClicked方法响应这些信号。

下面包含了对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_())

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值