在 PySide6 中,可以通过信号(signal)和槽(slot)来实现对象之间的通信。信号可以被触发,并且可以连接到一个或多个槽上,当信号被触发时,与之相连的槽将会被调用。
下面是一个创建和发送信号的示例:
from PySide6.QtCore import QObject, Signal
class MyObject(QObject):
# 定义一个信号,该信号不带参数
my_signal = Signal()
def do_something(self):
# 发送 my_signal 信号
self.my_signal.emit()
在这个示例中,MyObject
类定义了一个名为 my_signal
的信号,当该信号被触发时,不带任何参数。do_something
方法是一个触发信号的例子,通过调用 my_signal.emit()
来发送信号。
连接到信号的一个或多个槽可以通过 connect
方法完成:
my_object = MyObject()
# 连接 my_signal 信号到另一个对象的方法
my_object.my_signal.connect(another_object.some_method)
在这个示例中,我们要注意到,使用 connect
方法关联起来的槽必须与信号拥有相同数量和类型的参数。例如,如果一个信号带有一个字符串参数,则所连接的槽也必须带有一个字符串参数。