pyqt5,怎么设计窗口按钮点击一下进入选择界面,出现弹窗可以输入数据?
时间: 2024-02-25 15:57:06 浏览: 62
你可以在按钮的点击事件中创建一个带输入框的对话框,让用户输入数据。下面是一个简单的示例代码:
```python
from PyQt5.QtWidgets import QApplication, QMainWindow, QPushButton, QDialog, QLineEdit, QVBoxLayout
class MyWindow(QMainWindow):
def __init__(self):
super().__init__()
self.setGeometry(100, 100, 500, 500)
self.setWindowTitle("选择界面")
button = QPushButton("点击这里", self)
button.setGeometry(200, 200, 100, 50)
button.clicked.connect(self.showDialog)
def showDialog(self):
dialog = QDialog(self)
dialog.setWindowTitle("输入框")
edit = QLineEdit(dialog)
edit.setGeometry(50, 50, 200, 30)
buttonOk = QPushButton("确定", dialog)
buttonOk.setGeometry(50, 100, 100, 50)
buttonOk.clicked.connect(dialog.accept)
buttonCancel = QPushButton("取消", dialog)
buttonCancel.setGeometry(150, 100, 100, 50)
buttonCancel.clicked.connect(dialog.reject)
layout = QVBoxLayout()
layout.addWidget(edit)
layout.addWidget(buttonOk)
layout.addWidget(buttonCancel)
dialog.setLayout(layout)
if dialog.exec_() == QDialog.Accepted:
text = edit.text()
print(f"输入的内容为:{text}")
if __name__ == "__main__":
app = QApplication([])
window = MyWindow()
window.show()
app.exec_()
```
在这个例子中,我们在窗口中创建了一个按钮,并在按钮的`clicked`信号中连接了`showDialog`方法。在`showDialog`方法中,我们创建了一个带输入框的对话框,并在用户点击确定按钮时获取输入框中的内容并打印出来。
使用`QLineEdit`可以创建一个文本输入框,使用`QDialog`可以创建一个对话框。在对话框中添加按钮可以使用`QPushButton`,并连接对应的槽函数,这里分别是`dialog.accept`和`dialog.reject`。注意,在`QDialog`的`exec_`方法被调用时,它会阻塞程序并等待用户的操作,直到用户点击了确定或取消按钮才会返回相应的结果。
阅读全文