pyqt5 按钮点击弹出窗体,窗体可以输入数据,数据输入结束后点击“ok”按钮将数据传回主窗体
时间: 2024-03-09 19:50:27 浏览: 112
好的,这个问题我可以回答。首先,你需要在主窗体中添加一个按钮,点击该按钮后可以弹出另外一个窗体。代码如下:
```python
import sys
from PyQt5.QtWidgets import QApplication, QWidget, QPushButton, QLineEdit, QVBoxLayout
class MyWindow(QWidget):
def __init__(self):
super().__init__()
self.initUI()
def initUI(self):
self.setGeometry(300, 300, 300, 200)
self.setWindowTitle('Main Window')
# 添加按钮
self.button = QPushButton('Open Dialog', self)
self.button.move(100, 50)
self.button.clicked.connect(self.openDialog)
self.show()
def openDialog(self):
dialog = MyDialog(self)
dialog.exec_()
class MyDialog(QWidget):
def __init__(self, parent):
super().__init__(parent)
self.initUI()
def initUI(self):
self.setGeometry(350, 350, 300, 100)
self.setWindowTitle('Dialog')
# 添加文本框和按钮
self.textbox = QLineEdit(self)
self.textbox.move(20, 20)
self.button = QPushButton('OK', self)
self.button.move(200, 20)
self.button.clicked.connect(self.handleOK)
self.show()
def handleOK(self):
# 获取文本框中的数据并传回给主窗体
data = self.textbox.text()
self.parent().button.setText(data)
self.close()
if __name__ == '__main__':
app = QApplication(sys.argv)
window = MyWindow()
sys.exit(app.exec_())
```
在这个例子中,我们定义了两个窗体:`MyWindow` 和 `MyDialog`。`MyWindow` 是主窗体,其中添加了一个按钮,点击该按钮会弹出 `MyDialog` 窗体。`MyDialog` 窗体中有一个文本框和一个“OK”按钮,当用户在文本框中输入数据并点击“OK”按钮后,数据会传回给主窗体。
具体实现过程中,我们使用了 `QLineEdit` 组件来添加文本框,使用了 `QPushButton` 组件来添加按钮,并通过 `clicked` 信号连接到对应的槽函数。在 `handleOK` 槽函数中,我们获取文本框中的数据并使用 `parent()` 方法获取到主窗体的实例,然后将数据传回给主窗体。
阅读全文