setWindowFlags 是Qt中QWidget类的一个成员函数,用于设置窗口的标志(Flags)。这些标志定义了窗口的外观和行为。以下是一些常见的窗口标志:
Qt::Window
:使窗口成为一个顶级窗口。Qt::Dialog
:使窗口成为一个对话框。Qt::Tool
:使窗口成为一个工具窗口,通常没有任务栏图标,并且可能具有不同的装饰(如标题栏)。Qt::FramelessWindowHint
:创建一个无边框的窗口。注意:无边框窗口意味着窗口没有标题栏和边框,因此没有最小化、最大化或关闭按钮,也无法通过拖动边框来改变窗口大小。Qt::WindowStaysOnTopHint
:使窗口始终保持在其他窗口之上。Qt::CustomizeWindowHint
:允许自定义窗口的标题栏和边框。Qt::WindowTitleHint
:在窗口框架中显示标题。Qt::WindowSystemMenuHint
:在窗口框架的左上角显示系统菜单(通常是关闭、最小化等按钮)。Qt::WindowMinMaxButtonsHint
:在窗口框架中显示最小化和最大化按钮。Qt::WindowCloseButtonHint
:在窗口框架中显示关闭按钮。Qt::MSWindowsFixedSizeDialogHint
(仅Windows):使对话框具有固定大小,并且没有最大化按钮。
//窗口设置多个属性
setWindowFlags(Qt::Window | Qt::FramelessWindowHint); //创建一个无边框的顶级的窗口
注意:
1)一旦窗口已经显示,更改其标志可能不会立即生效,或者可能需要一些额外的步骤来使更改生效。在某些情况下,你可能需要隐藏窗口、更改标志、然后再显示窗口:
window->hide();
window->setWindowFlags(Qt::Window | Qt::WindowStaysOnTopHint); //使窗口始终保持在顶部
window->show();
2)有些标志可能相互排斥或依赖于特定的平台,因此在设置标志时请务必查阅Qt的文档以了解每个标志的具体行为和限制。