首页 PyQt5教程 PyQt5创建自定义信号(pyqtSignal)操作流程
pay pay
教程目录

PyQt5创建自定义信号(pyqtSignal)操作流程

日期: 二月 17, 2023, 12:18 p.m.
栏目: PyQt5教程
阅读: 331
作者: Python自学网-村长

摘要: 在PyQt5中,可以使用pyqtSignal来创建自定义信号。自定义信号可以让一个对象在某个事件发生时发出信号,而其他对象可以连接这个信号,并在接收到信号时执行相应的操作。

在PyQt5中,可以使用pyqtSignal来创建自定义信号。自定义信号可以让一个对象在某个事件发生时发出信号,而其他对象可以连接这个信号,并在接收到信号时执行相应的操作。

下面是一个简单的例子,演示如何创建自定义信号并在两个对象之间进行信号传递:

from PyQt5.QtCore import pyqtSignal, QObject

class MyObject(QObject):
    # 定义自定义信号,该信号不带参数
    my_signal = pyqtSignal()

    def do_something(self):
        # 发射自定义信号
        self.my_signal.emit()

class MyReceiver(QObject):
    def handle_my_signal(self):
        # 接收到信号时执行的操作
        print('Received signal')

if __name__ == '__main__':
    # 创建对象
    obj = MyObject()
    receiver = MyReceiver()

    # 将 MyObject 对象的 my_signal 信号连接到 MyReceiver 对象的 handle_my_signal 槽函数上
    obj.my_signal.connect(receiver.handle_my_signal)

    # 发射信号
    obj.do_something()

在这个例子中,我们定义了一个名为 MyObject 的类,其中定义了一个自定义信号 my_signal。在 do_something 函数中,我们发射了这个自定义信号。我们还定义了一个名为 MyReceiver 的类,在这个类中定义了一个槽函数 handle_my_signal,该槽函数在接收到 my_signal 信号时会被调用。在主程序中,我们创建了一个 MyObject 对象和一个 MyReceiver 对象,并将 my_signal 信号连接到 handle_my_signal 槽函数上。最后,我们调用 do_something 函数,发射 my_signal 信号。

当 my_signal 信号被发射时,handle_my_signal 槽函数会被调用,并输出一条消息。这就完成了两个对象之间的信号传递。

部分文字内容为【Python自学网】原创作品,转载请注明出处!视频内容已申请版权,切勿转载!
回顶部