一个默默耕耘的工程师…
1.窗口状态
调用函数void setWindowState(Qt::WindowStates state)设置窗口大小,state可以传递以下值:
enum WindowState {
WindowNoState = 0x00000000, //默认大小,在界面设计器中指定的。
WindowMinimized = 0x00000001,
WindowMaximized = 0x00000002,
WindowFullScreen = 0x00000004,
};
Widget w;
w.setWindowState(Qt::WindowMaximized);//窗口最大化,这个函数不是槽函数
w.show();
也可以使用一些槽函数:
showMaximized();
showFullScreen();
showMinimized();
showNormal();
2.定制窗口类型
默认的窗口有标题栏,将标题栏去掉(可以做到界面样式/颜色的统一),并且添加一些自己的关闭、最大化和最小化按钮。
- 默认的窗口
通过下面两个函数可以将标题栏、最大化、最小化、关闭几个控件给隐藏或显示。
void setWindowFlag(Qt::WindowType, bool on = true);//单独设置一个
void overrideWindowFlags(Qt::WindowFlags type);//用或运算,可以设置多个
有很多flag:
enum WindowType {
WindowTitleHint = 0x00001000,
WindowSystemMenuHint = 0x00002000,
WindowMinimizeButtonHint = 0x00004000,
WindowMaximizeButtonHint = 0x00008000,
WindowMinMaxButtonsHint = WindowMinimizeButtonHint | WindowMaximizeButtonHint,
WindowContextHelpButtonHint = 0x00010000,
WindowShadeButtonHint = 0x00020000,
WindowStaysOnTopHint = 0x00040000,
WindowTransparentForInput = 0x00080000,
WindowOverridesSystemGestures = 0x00100000,
WindowDoesNotAcceptFocus = 0x00200000,
MaximizeUsingFullscreenGeometryHint = 0x00400000,
CustomizeWindowHint = 0x02000000,
WindowStaysOnBottomHint = 0x04000000,
WindowCloseButtonHint = 0x08000000,
MacWindowToolBarButtonHint = 0x10000000,
BypassGraphicsProxyWidget = 0x20000000,
NoDropShadowWindowHint = 0x40000000,
WindowFullscreenButtonHint = 0x80000000
};
3.案例:隐藏关闭按钮
Widget w;
w.setWindowFlag(Qt::WindowCloseButtonHint, false);
w.show();
Widget w;
//标题栏保留,去除所有按钮
w.setWindowFlags(Qt::WindowTitleHint | Qt::CustomizeWindowHint);
w.show();
//这种形式的界面很常用
Widget w;
//去除界面边框和标题栏
w.setWindowFlags(Qt::FramelessWindowHint);
w.show();