如何信号槽连接两个函数,同时访问PyQt5窗口,能给我一个例子吗?
时间: 2023-06-07 16:10:15 浏览: 88
可以的,以下是示例代码:
``` Python
from PyQt5.QtCore import pyqtSignal, QObject
from PyQt5.QtWidgets import QApplication, QMainWindow, QPushButton
class Example(QObject):
def __init__(self):
super().__init__()
# 创建一个信号
self.signal = pyqtSignal()
# 连接信号和槽
self.signal.connect(self.slot1)
self.signal.connect(self.slot2)
# 定义两个槽
def slot1(self):
print('slot1 called.')
def slot2(self):
print('slot2 called.')
app = QApplication([])
win = QMainWindow()
# 创建一个按钮
btn = QPushButton('click me', win)
# 创建一个 Example 实例
example = Example()
# 点击按钮即发送信号
btn.clicked.connect(example.signal.emit)
win.show()
app.exec_()
```
这个例子中,我们创建了一个 Example 类,其中包含了一个信号 `signal` 和两个槽 `slot1` 和 `slot2`。在 `__init__` 方法中,我们将信号和槽连接起来,也就是说,当信号发出时,这两个槽函数都会被调用。然后,在主窗口中创建了一个按钮,并将其 clicked 信号与 `example.signal` 对应。这样,当按钮被点击时,`example.signal` 对应的信号也会被发送,从而调用 `slot1` 和 `slot2` 两个槽函数。