pyqt 代码实现创建绑定两个窗口的信号槽
时间: 2023-06-02 16:06:35 浏览: 130
Qt自定义信号槽代码实现
可以使用以下代码实现:
1. 首先,在第一个窗口中定义一个信号:
```python
from PyQt5.QtCore import pyqtSignal, QObject
class Window1(QObject):
mySignal = pyqtSignal(str)
```
2. 在第二个窗口中定义一个槽:
```python
class Window2(QWidget):
def __init__(self, parent=None):
super(Window2, self).__init__(parent)
self.setWindowTitle('Window 2')
self.setGeometry(400, 300, 300, 200)
self.label = QLabel(self)
self.label.setText('I am label')
@pyqtSlot(str)
def changeTextLabel(self, text):
self.label.setText(text)
```
3. 在第一个窗口中创建一个信号对象,并将它与第二个窗口的槽函数绑定:
```python
class Window1(QObject):
mySignal = pyqtSignal(str)
def __init__(self, parent=None):
super(Window1, self).__init__(parent)
self.window2 = Window2()
self.mySignal.connect(self.window2.changeTextLabel)
```
4. 在第一个窗口中可以通过以下代码来发射信号,从而触发第二个窗口中的槽函数:
```python
class Window1(QObject):
mySignal = pyqtSignal(str)
def __init__(self, parent=None):
super(Window1, self).__init__(parent)
self.window2 = Window2()
self.mySignal.connect(self.window2.changeTextLabel)
def emitMySignal(self):
self.mySignal.emit('Hello World')
```
以上就是使用 PyQt 实现创建绑定两个窗口的信号槽的代码。
阅读全文