//产生一个无边框的窗口,用户不能移动和改变大小
setWindowFlags(Qt::FramelessWindowHint);
//待在所有窗口的最上面
setWindowFlags(Qt::WindowStaysOnTopHint);
//指示小部件是工具窗口,如果有父窗口,则永远一直显示在父窗口的上面。
//标题栏和装饰比较小,就像是无边框线。
//并且此工具窗口无任务栏显示,不会获取焦点
setWindowFlags(Qt::Tool);
//设置后窗口将不受窗口管理器的限制,该标志只在linux下生效,windows下将被忽略,因为 Windows 使用的是另一种窗口系统
//主要功能是:不让该窗体抢占焦点
setWindowFlags(Qt::X11BypassWindowManagerHint);
//自定义窗口标题栏,如果不设置显示标题栏和添加按钮,则不显示标题栏。
setWindowFlags(Qt::CustomizeWindowHint);
//显示标题栏
setWindowFlags(Qt::WindowTitleHint);
//下面这种写法,只能生效最后一个设置的标志。
setWindowFlags(Qt::WindowMinimizeButtonHint);//添加最小化按钮
setWindowFlags(Qt::WindowMaximizeButtonHint);//添加最大化按钮
setWindowFlags(Qt::WindowMinMaxButtonsHint); //添加最小化按钮和最大化按钮
setWindowFlags(Qt::WindowCloseButtonHint); //添加关闭按钮
//如果需要一次性生效
setWindowFlags(Qt::WindowMinimizeButtonHint | Qt::WindowCloseButtonHint | Qt::WindowMaximizeButtonHint);
2.Qt::WA_DeleteOnClose
(1)调用close()方法,会向widget发送一个关闭事件(QCloseEvent),如果widget接受了关闭事件,窗口将会隐藏(实际上调用hide())。如果widget不接受关闭事件,那么窗口将什么也不做。也就是说close()方法只会隐藏窗口对象而已,并不会销毁该对象。
(2)倘若设置了WA_DeleteOnClose属性,它接收到QCloseEvent事件后,除了调用hide()方法将窗口隐藏外,同时会调用deleteLater()方法将窗口释放掉,不会再占用资源。