实用的Qt窗口标志(Qt::WindowFlags)

窗口标志枚举类型用于指定小部件的各种窗口系统属性。其中一些标志取决于底层窗口管理器是否支持它们。以下是一些比较实用的窗口标志:

1、Qt::Widget:这是QWidget的默认类型。如果有父窗口则为子窗口小部件,如果没有父窗口则为独立窗口小部件。

2、Qt::Window:小部件是一个窗口,通常带有窗口系统框架和标题栏,而不管小部件是否有父级如果有父级,小部件在顶层。默认标题栏有最小话、最大化、关闭按钮。如果小部件没有父级,则无法取消设置此标志。

    QWidget * w = new QWidget(this);
    w->setWindowFlags(Qt::Window);
    w->setAttribute(Qt::WA_DeleteOnClose);//关闭后删除对象
    w->show();

3、Qt::Dialog:小部件是一个对话框。默认标题栏有关闭按钮。这是QDialog的默认类型。如果有父级,小部件在顶层。

    w.setWindowFlags(Qt::Dialog);

4、Qt::Popup:小部件是一个弹出式顶级窗口,即它是模态窗口。无标题栏、无关闭按钮。这种类型适合作为子窗口,当失去焦点时窗口会关闭,适合用作弹出提示信息的窗口。合适的用法:

    QWidget * w = new QWidget(this);
    w->setWindowFlags(Qt::Popup);
    w->setGeometry(300,300,300,300);
    w->setAttribute(Qt::WA_DeleteOnClose);//关闭后删除对象
    w->show();

5、Qt::Tool:小部件是工具窗口。工具窗口通常是一个小窗口,有标题栏,标题栏上只有一个比一般窗口小的按钮如果有父级,小部件在顶层。如果没有父级,也可以考虑使用Qt::WindowStaysOnTopHint。它也可以与Qt::FramelessWindowHint结合使用去掉标题栏。

实用的Qt窗口标志(Qt::WindowFlags)_第1张图片

6、Qt::ToolTip:工具提示小部件。没有标题栏始终在顶层。失去焦点也不消失。比较合适的用法是把QLabel放到里面,设置提示信息,然后设置QTimer::singleShot让它过几秒钟消失。

7、Qt::FramelessWindowHint:生成无边框窗口。用户不能通过窗口系统移动或调整无边框窗口的大小。

8、Qt::CustomizeWindowHint:关闭默认窗口标题。


标题栏变得很窄,右键菜单没有了,按钮没有了。

9、Qt::WindowTitleHint:设置了CustomizeWindowHint之后保留标题栏:

setWindowFlags(Qt::CustomizeWindowHint |Qt::WindowTitleHint);

要两个一起设置。

10、Qt::WindowMinimizeButtonHint:最小化按钮。

11、Qt::WindowMaximizeButtonHint:最大化按钮。

12、Qt::WindowMinMaxButtonsHint:最大最小化两个按钮。

13、Qt::WindowCloseButtonHint:关闭按钮。

14、Qt::WindowContextHelpButtonHint:帮助按钮。

15、Qt::WindowStaysOnTopHint:窗口在顶层。

16、Qt::WindowStaysOnBottomHint:窗口在底层。

你可能感兴趣的:(#,Qt日常记录,#,Qt详解系列,qt,开发语言)