Pyqt5在已有主窗口下打开另一个窗口
时间: 2023-08-29 18:06:21 浏览: 143
可以使用QDialog来创建一个新的窗口,在已有主窗口下打开这个窗口,具体步骤如下:
1. 创建一个新的QDialog类,例如MyDialog。
```python
class MyDialog(QDialog):
def __init__(self):
super().__init__()
# 设置窗口属性
self.setWindowTitle('My Dialog')
self.resize(300, 200)
```
2. 在主窗口中添加打开新窗口的按钮,并为按钮添加一个槽函数。
```python
class MainWindow(QMainWindow):
def __init__(self):
super().__init__()
# 创建打开新窗口的按钮
self.open_dialog_button = QPushButton('Open Dialog', self)
self.open_dialog_button.clicked.connect(self.open_dialog)
# 将按钮添加到主窗口中
self.setCentralWidget(self.open_dialog_button)
def open_dialog(self):
# 创建新的窗口
self.dialog = MyDialog()
# 在已有主窗口下打开新窗口
self.dialog.setWindowModality(Qt.ApplicationModal)
self.dialog.show()
```
3. 运行程序,点击按钮即可打开新窗口。
注意,使用`setWindowModality`函数设置窗口模态性,可以使新窗口在已有主窗口下打开时,其他窗口不可操作。如果不需要这个功能,可以省略`setWindowModality`函数。
阅读全文