pyqt5 按钮点击弹出窗体输入数据返回
时间: 2024-02-22 07:23:45 浏览: 193
好的,您可以参考以下代码实现:
1. 首先,创建一个主窗体和一个按钮,代码如下:
```python
import sys
from PyQt5.QtWidgets import QApplication, QMainWindow, QPushButton, QDialog, QLabel, QVBoxLayout
class MainWindow(QMainWindow):
def __init__(self):
super().__init__()
self.initUI()
def initUI(self):
self.setWindowTitle('Main Window')
self.setGeometry(100, 100, 300, 200)
self.btn = QPushButton('Open Dialog', self)
self.btn.move(100, 50)
self.btn.clicked.connect(self.openDialog)
def openDialog(self):
dialog = InputDialog(self)
dialog.exec_()
```
2. 然后,创建一个弹出窗体,代码如下:
```python
class InputDialog(QDialog):
def __init__(self, parent=None):
super().__init__(parent)
self.initUI()
def initUI(self):
self.setWindowTitle('Input Dialog')
self.setGeometry(200, 200, 300, 200)
label = QLabel('Please input your name:', self)
self.input = QLineEdit(self)
vbox = QVBoxLayout()
vbox.addWidget(label)
vbox.addWidget(self.input)
self.setLayout(vbox)
btn = QPushButton('OK', self)
btn.move(100, 150)
btn.clicked.connect(self.accept)
def accept(self):
name = self.input.text()
self.parent().statusBar().showMessage('Your name is: {}'.format(name))
super().accept()
```
在弹出窗体中,我们创建了一个标签和一个输入框,然后通过垂直布局将它们放在一起。还创建了一个“确定”按钮,当用户点击该按钮时,会将输入框中的数据传递给主窗体,并在主窗体的状态栏中显示。
3. 最后,在主函数中运行应用程序,代码如下:
```python
if __name__ == '__main__':
app = QApplication(sys.argv)
window = MainWindow()
window.show()
sys.exit(app.exec_())
```
这样,当用户点击主窗体中的按钮时,就会弹出一个窗体,要求用户输入数据,并在用户点击“确定”按钮后将数据传递给主窗体。
阅读全文