继承关系:
QObject:
QWidget
- QDialog
- QMainWindow
- QSplashScreen
- QMdiSubWindow
- QDesktopWidget
- QWindow
QWidget: 在没有指定父容器时,可作为独立窗口。指定父容器后可以作为容器的内部组件。
QDialog: 用于设计对话框,以独立窗口显示。
QMainWindow: 用于设计带有菜单栏、工具栏、状态栏的主窗口,一般以独立窗口显示。
QSplashScreen
: 用作应用程序启动时的splash窗口,没有边框。QMdiSubWindow
: 用于为QMdiArea提供一个子窗体,用于MDI(多文档)的设计。QDesktopWidget
: 具有多个显卡和多个显示器的系统具有多个桌面,这个类提供用户桌面信息,如屏幕个数、每个屏幕的大小等。QWindow
: 通过底层的窗口系统表示一个窗口的类,一般作为一个父容器的嵌入式窗体,不作为独立的窗体。
设置窗体的 运行特性 和 显示特性:
void QWidget::setWindowState(Qt::WindowStates windowstate)
Qt::NonModal
: 无模态,不会阻止其他窗口的输入Qt::WindowModal
: 窗口对其父窗口、所有的上级父窗口都是模态的Qt::ApplicationModal
: 窗口对整个应用程序是模态的,阻止所有窗口的输入
void QWidget::setWindowOpacity(qreal level)
参数 level 是 1.0(完全不透明) 至 0.0(完全透明)之间的数。窗口透明度缺省值是1.0
void QWidget::setAttribute(Qt::WidgetAttribute attribute, bool on=true)
Qt::WA_AcceptDrops
: 允许窗体接收拖放来的组件Qt::WA_DeleteOnClose
: 窗体关闭时删除自己,释放内存Qt::WA_Hover
: 鼠标进入或移出窗体时产生paint事件Qt::WAAcceptTouchEvents
: 窗体是否接受触屏事件
void QWidget::setWindowFlags(Qt::WindowFlags type)
表示窗体类型的常量
Qt::Widget
: 这就是QWdiget类的缺省类型。如果它有父窗体,就作为父窗体的子窗体;否则就作为独立的窗口。Qt::Window
: 表明是一个窗口,通常具有边框、标题栏。Qt::Dialog
: 是一个窗口,并且显示为对话框(例如在标题栏没有最小化、最大化按键)Qt::Popup
: 这个窗体是用作弹出式菜单的窗体Qt::Tool
: 是工具窗体,具有更小的标题栏和关闭按钮,通常作为工具栏的窗体Qt::ToolTip
: 用于 Tooltip 消息提示的窗体Qt::SplashScreen
: 窗体是splash屏幕,是QSplashScreen类的缺省类型Qt::Desktop
: 窗体是桌面,这是QDesktopWidget类的类型Qt::SubWindow
: 是子窗体,例如 QMdiSubWindow 就是这种类型
控制窗体显示效果:
Qt::MSWindowsFixedSizeDialogHint
: 在windows平台上,使窗口具有更窄的边框,用于固定大小的对话框Qt::FramelessWindowHint
: 创建无边框窗口
WindowHint要定义窗体外观,需要先设置 Qt::Customize
Qt::CustomizeWindowHint
: 关闭缺省的窗口标题栏Qt::WindowTitleHint
: 窗口有标题栏Qt::WindowSystemMenuHint
: 有窗口系统菜单Qt::WindowMinimizeButtomHint
: 有最小化按钮Qt::WindowMaximizeButtomHint
:Qt::WindowMinMaxButtonsHint
:Qt::WindowCloseButtonHint
:Qt::WindowContextHelpButtonHint
:Qt::WindowStaysOnTopHint
: 窗口总是处于最上层Qt::WindowStaysOnBottomHint
: 窗口总是处于最下层Qt::WindowTranspartentForInput
: 窗口只作为输出,不接受输入