简介
是对话窗口的基类,对话窗口是顶级窗口,主要用于短期任务和与用户的简短通信。
继承自QWidget
创建
QDialog(parent: QWidget = None, flags: Union[Qt.WindowFlags, Qt.WindowType] = Qt.WindowFlags())
# 代码示例
window = QWidget()
qd = QDialog(window)
qd.resize(200, 100)
qd.open()
模态设置
在介绍模态设置之前首先认识什么是“模态”;
模态对话框:模态对话框分为应用级(默认值)和窗口级,应用级模态对话框,当该种模态的对话框出现时,用户必须首先对对话框进行交互,直到关闭对话框,然后才能访问程序中其他的窗口,其使用exec()进行窗口展示;
# 演示代码
window = QWidget()
qd = QDialog()
qd.resize(200, 100)
qd.exec()
window.show()
窗口级模态对话框,该模态仅仅阻塞与对话框关联的窗口,但是依然允许用户与程序中其它窗口交互,其使用open()进行窗口展示;
# 演示代码
window = QWidget()
qd = QDialog(window)
qd.resize(200, 100)
qd.open()
非模态对话框:不会阻塞与对话框关联的窗口以及与其他窗口进行交互,使用show()进行窗口展示,可以结合使用方法setModal(True)来实现;
# 演示代码
window = QWidget()
qd = QDialog(window)
qd.resize(200, 100)
qd.show()
window.show()
# 通过setModal(bool)方法设置模态
window = QWidget()
qd = QDialog(window)
qd.resize(200, 100)
qd.setModal(True)