pyqt生成子窗口时父窗口也能使用
时间: 2023-10-04 17:08:26 浏览: 95
在 PyQt 中,生成子窗口时,默认情况下父窗口是不能使用的。但是可以通过设置子窗口的 `setModal(False)` 属性使其变成非模态窗口,这样父窗口就可以同时使用了。
示例代码如下:
```python
from PyQt5.QtWidgets import QApplication, QMainWindow, QPushButton, QDialog
class MainWindow(QMainWindow):
def __init__(self):
super().__init__()
self.initUI()
def initUI(self):
self.setWindowTitle('Main Window')
self.setGeometry(100, 100, 300, 200)
btn = QPushButton('Open Dialog', self)
btn.move(50, 50)
btn.clicked.connect(self.openDialog)
def openDialog(self):
dialog = QDialog(self)
dialog.setModal(False) # 设置为非模态窗口
dialog.setWindowTitle('Dialog')
dialog.setGeometry(200, 200, 200, 100)
dialog.exec_()
if __name__ == '__main__':
app = QApplication([])
window = MainWindow()
window.show()
app.exec_()
```
在上述代码中,我们通过 `setModal(False)` 将 `QDialog` 窗口设置为非模态窗口,这样打开该窗口时,父窗口仍然可以使用。
阅读全文