pyqt5 父窗口向子窗口传递数据
时间: 2023-11-03 17:05:11 浏览: 434
python Qt5GUI界面主窗口和子窗口相互传值,保证能用
在pyqt5中,父窗口向子窗口传递数据可以通过信号与槽机制实现。首先,在父窗口中定义一个信号,并在子窗口中定义一个槽函数来接收这个信号。然后,通过连接信号与槽函数,当父窗口要向子窗口传递数据时,通过信号发射将数据传递给子窗口的槽函数。
下面是一个示例代码,展示了父窗口向子窗口传递数据的方法:
在父窗口中定义信号:
```python
from PyQt5.QtCore import pyqtSignal, QObject
class ParentWindow(QObject):
dataSignal = pyqtSignal(str)
def sendData(self):
data = "Hello, child window!"
self.dataSignal.emit(data)
```
在子窗口中定义槽函数接收数据:
```python
from PyQt5.QtWidgets import QWidget, QLabel
class ChildWindow(QWidget):
def __init__(self):
super().__init__()
self.label = QLabel(self)
def receiveData(self, data):
self.label.setText(data)
```
连接信号与槽函数:
```python
parentWindow = ParentWindow()
childWindow = ChildWindow()
parentWindow.dataSignal.connect(childWindow.receiveData)
```
在需要传递数据的时候,父窗口调用`sendData`方法即可:
```python
parentWindow.sendData()
```
阅读全文