pyqt5 的信号槽举例
时间: 2023-05-12 08:07:15 浏览: 109
当我们使用 PyQt5 编写 GUI 应用程序时,信号槽是非常重要的概念。信号槽用于在不同的对象之间传递消息,以便在应用程序中实现交互。下面是一个简单的例子:
```python
from PyQt5.QtCore import pyqtSignal, QObject
class MyObject(QObject):
my_signal = pyqtSignal(str)
def __init__(self):
super().__init__()
def do_something(self):
self.my_signal.emit("Hello, world!")
class MyReceiver(QObject):
def __init__(self):
super().__init__()
def on_my_signal(self, msg):
print(msg)
obj = MyObject()
receiver = MyReceiver()
obj.my_signal.connect(receiver.on_my_signal)
obj.do_something()
```
在这个例子中,我们定义了一个 `MyObject` 类,它有一个 `my_signal` 信号。当 `do_something` 方法被调用时,它会发出这个信号。我们还定义了一个 `MyReceiver` 类,它有一个 `on_my_signal` 槽,用于接收 `my_signal` 信号。在主程序中,我们创建了一个 `MyObject` 对象和一个 `MyReceiver` 对象,并将它们连接起来。当 `do_something` 方法被调用时,`MyReceiver` 对象的 `on_my_signal` 槽会被调用,输出 "Hello, world!"。
这就是 PyQt5 中信号槽的基本用法。
阅读全文