对话框(QDialog)是顶层窗口,主要用于短期任务和与用户的简短通信。所谓的顶层窗口,就是可以显示在所有窗口的最前面(也有另一种说法,是指没有父类的窗口)
例如,有些警告窗口始终显示在屏幕顶端,直到被用户关闭。QDialog 虽然是顶层窗口,但是也可以有父类窗口。和一般具有父类窗口的控件(如 QLabel)不同,QDialog 可以显示在屏幕的任何位置,而有父类的 QLabel 只能在父窗口范围之内显示。
如果 QDialog 有父类,则其启动默认位置在父窗口的中间,并共享父类的任务栏条目,否则默认启动位置在屏幕中间。既可以在初始化过程中传递父类,也可以使用 setParent0函数修改对话框的所有权。
对话框窗口是一个用来完成简单任务或者和用户进行临时交互的顶层窗口,通常用于输人信息、确认信息或者提示信息。QDialog 类是所有对话框窗口类的基类,继承自QDialog 的类有:
- QAbstractPrintDialog
- QPageSetupDialog
- QPrintDialog
- QPrintPreviewDialog
- QColorDialog
- QErrorMessage
- QFileDialog
- QFontDialog
- QInputDialog
- QMessageBox
- QProgressDialog
- QWizard
按照运行时是否可以和其他窗口进行交互操作,对话框分为模式(或模态)对话框和非模式对话框。
对于带有模式的对话框,只有在关闭该对话框的情况下才可以对其他窗口进行操作;而对于非模式对话框,在没有关闭对话框的情况下,既可以对该对话框进行操作,也可以对其他窗口进行操作,例如记事本中的查询对话框和替换对话框就是非模式对话框。
为方便编程,PySide6 提供了一些常用的标准对话框,例如文件打开保存对话框QFileDialog、字体 对话框 QFontDialog、颜色 对话