记录一下windowFlags各种标志位的样式和用法,
代码:
1 #include "qtwindowflagstest.h"
2 #include <QtWidgets/QApplication>
3 #include <QStatusBar>
4 #include <QObject>
5
6 int main(int argc, char *argv[])
7 {
8 QApplication a(argc, argv);
9 QtWindowFlagsTest w;
10 w.setGeometry(10, 30, 200, 200);
11 w.statusBar()->showMessage(QObject::tr("Normal"));
12 w.show();
13
14 //只有一个关闭按钮
15 QtWindowFlagsTest w2;
16 w2.setGeometry(225, 30, 200, 200);
17 w2.setWindowFlags(Qt::WindowCloseButtonHint);
18 w2.statusBar()->showMessage("Qt::WindowCloseButtonHint");
19 w2.show();
20
21 //像对话框一样,有个问号和关闭按钮
22 QtWindowFlagsTest w3;
23 w3.setGeometry(440, 30, 200, 200);
24 w3.setWindowFlags(Qt::WindowContextHelpButtonHint);
25 w3.statusBar()->showMessage("Qt::WindowContextHelpButtonHint");
26 w3.show();
27
28 //标题栏也没有 按钮也没有 在那里出现就站在那里不到,也不能移动和拖到,任务栏右击什么也没有,任务栏窗口名也没有,但是可以从任务管理器里关闭
29 QtWindowFlagsTest w4;
30 w4.setGeometry(655, 30, 200, 200);
31 w4.setWindowFlags(Qt::CustomizeWindowHint);
32 w4.statusBar()->showMessage("Qt::CustomizeWindowHint");
33 w4.show();
34
35 //窗口只有一个关闭按钮
36 QtWindowFlagsTest w5;
37 w5.setGeometry(870, 30, 200, 200);
38 w5.setWindowFlags(Qt::WindowTitleHint);
39 w5.statusBar()->showMessage("Qt::WindowTitleHint");
40 w5.show();
41
42 //只有一个关闭按钮
43 QtWindowFlagsTest w6;
44 w6.setGeometry(1085, 30, 200, 200);
45 w6.setWindowFlags(Qt::WindowSystemMenuHint);
46 w6.statusBar()->showMessage("Qt::WindowSystemMenuHint");
47 w6.show();
48
49 //最小化按钮不可用
50 QtWindowFlagsTest w7;
51 w7.setGeometry(1300, 30, 200, 200);
52 w7.setWindowFlags(Qt::WindowMaximizeButtonHint);
53 w7.statusBar()->showMessage("Qt::WindowMaximizeButtonHint");
54 w7.show();
55
56 //还原按钮不可用
57 QtWindowFlagsTest w8;
58 w8.setGeometry(1515, 30, 200, 200);
59 w8.setWindowFlags(Qt::WindowMinimizeButtonHint);
60 w8.statusBar()->showMessage("Qt::WindowMinimizeButtonHint");
61 w8.show();
62
63 //窗口没有按钮但是有标题栏 任务里什么也看不到
64 QtWindowFlagsTest w9;
65 w9.setGeometry(2, 238, 200, 200);
66 w9.setWindowFlags(Qt::SubWindow);
67 w9.statusBar()->showMessage("Qt::SubWindow");
68 w9.show();
69
70 //没有显示在桌面也没在任务。但是任务管里器里还有
71 QtWindowFlagsTest w10;
72 w10.setGeometry(217, 238, 200, 200);
73 w10.setWindowFlags(Qt::Desktop);
74 w10.statusBar()->showMessage("Qt::Desktop");
75 w10.show();
76
77 //标题栏也没有 按钮也没有 在那里出现就站在那里不到,也不能移动和拖到,任务栏右击什么也没有,任务栏窗口名也没有, 但是可以从任务管理器里关闭
78 QtWindowFlagsTest w11;
79 w11.setGeometry(432, 238, 200, 200);
80 w11.setWindowFlags(Qt::SplashScreen);
81 w11.statusBar()->showMessage("Qt::SplashScreen");
82 w11.show();
83
84 //标题栏也没有 按钮也没有 在那里出现就站在那里不到,也不能移动和拖到,任务栏右击什么也没有,任务栏窗口名也没有, 但是可以从任务管理器里关闭 顶层窗口 一直都是在最上面
85 QtWindowFlagsTest w12;
86 w12.setGeometry(647, 238, 200, 200);
87 w12.setWindowFlags(Qt::ToolTip);
88 w12.statusBar()->showMessage("Qt::ToolTip");
89 w12.show();
90
91 //有一个小小的关闭按钮,但是好像不能真正的关闭
92 QtWindowFlagsTest w13;
93 w13.setGeometry(862, 238, 200, 200);
94 w13.setWindowFlags(Qt::Tool);
95 w13.statusBar()->showMessage("Qt::Tool");
96 w13.show();
97
98 return a.exec();
99 }
结果: