pyqt主界面中显示子界面,等待子界面的enter按下时,子界面再close
时间: 2023-08-01 12:09:53 浏览: 174
Python 中PyQt5 点击主窗口弹出另一个窗口的实现方法
可以通过以下步骤实现:
1. 在主界面中创建一个按钮或者菜单项,当用户点击这个按钮或菜单项时,会弹出一个子界面。
2. 子界面中可以添加一个文本框和一个确认按钮。
3. 当用户在文本框中输入完内容后,点击确认按钮,子界面会发送一个信号给主界面,告诉主界面用户已经输入完毕。
4. 主界面接收到子界面发送的信号后,会关闭子界面,并将用户输入的内容显示在主界面上。
下面是一个示例代码,供参考:
```python
import sys
from PyQt5.QtWidgets import QApplication, QMainWindow, QWidget, QVBoxLayout, QLineEdit, QPushButton
class SubWindow(QWidget):
def __init__(self):
super().__init__()
self.textbox = QLineEdit(self)
self.button = QPushButton('确认', self)
self.button.clicked.connect(self.on_button_clicked)
layout = QVBoxLayout(self)
layout.addWidget(self.textbox)
layout.addWidget(self.button)
def on_button_clicked(self):
self.accept()
class MainWindow(QMainWindow):
def __init__(self):
super().__init__()
self.initUI()
def initUI(self):
self.setGeometry(100, 100, 300, 200)
self.setWindowTitle('主窗口')
self.button = QPushButton('打开子窗口', self)
self.button.move(50, 50)
self.button.clicked.connect(self.show_subwindow)
self.show()
def show_subwindow(self):
subwindow = SubWindow()
if subwindow.exec_() == SubWindow.Accepted:
text = subwindow.textbox.text()
print('用户输入的内容是:', text)
if __name__ == '__main__':
app = QApplication(sys.argv)
window = MainWindow()
sys.exit(app.exec_())
```
在这个示例代码中,我们创建了一个主窗口和一个子窗口。当用户点击主窗口中的按钮时,会弹出子窗口。用户在子窗口中输入完内容后,点击确认按钮,子窗口会发送一个信号给主窗口,告诉主窗口用户已经输入完毕。主窗口接收到子窗口发送的信号后,会关闭子窗口,并将用户输入的内容显示在控制台上。
阅读全文