Python中多窗口数据传递之PyQt信号与槽
在PyQt中,信号与槽是一种强大的机制,可用于实现多个窗口之间的数据交换。通过信号和槽,可以将一个对象的动作(信号)链接到另一个对象的操作(槽),从而实现两者之间的通信。本文将介绍如何使用PyQt的信号与槽机制,在多个窗口之间进行数据传递。
首先,在PyQt中,所有的控件都可以发出信号,例如button按钮,QLineEdit文本框等。同时,也有许多有用的信号可以使用,例如clicked(按钮被单击时触发)、textChanged(文本框内容发生变化时触发)等。
接下来,我们将演示如何创建两个窗口,并且在它们之间传递数据。
- 创建主窗口
首先,我们需要创建一个主窗口,用于输入要传递的数据。将主窗口代码保存为MainWindow.py文件。
import sys
from PyQt5.QtWidgets import QApplication, QDialog, QLineEdit, QPushButton, QVBoxLayout
class MainWindow(QDialog):
def init(self):
super().init()
self.line_edit = QLineEdit()
self.button = QPushButton(‘打开子窗口’)
layout = QVBoxLayout()
layout.addWidget(self.line_edit)
layout.addWidget(self.button)
self.setLayout(l