如何在QMainWindow中设置多个标志?

Aqu*_*irl 4 c++ qt

从这里:http://doc.qt.io/qt-4.8/qt-widgets-windowflags-example.html

 if (flags & Qt::MSWindowsFixedSizeDialogHint)
     text += "\n| Qt::MSWindowsFixedSizeDialogHint";
 if (flags & Qt::X11BypassWindowManagerHint)
     text += "\n| Qt::X11BypassWindowManagerHint";
 if (flags & Qt::FramelessWindowHint)
     text += "\n| Qt::FramelessWindowHint";
 if (flags & Qt::WindowTitleHint)
     text += "\n| Qt::WindowTitleHint";
 if (flags & Qt::WindowSystemMenuHint)
     text += "\n| Qt::WindowSystemMenuHint";
 if (flags & Qt::WindowMinimizeButtonHint)
     text += "\n| Qt::WindowMinimizeButtonHint";
 if (flags & Qt::WindowMaximizeButtonHint)
     text += "\n| Qt::WindowMaximizeButtonHint";
 if (flags & Qt::WindowCloseButtonHint)
     text += "\n| Qt::WindowCloseButtonHint";
 if (flags & Qt::WindowContextHelpButtonHint)
     text += "\n| Qt::WindowContextHelpButtonHint";
 if (flags & Qt::WindowShadeButtonHint)
     text += "\n| Qt::WindowShadeButtonHint";
 if (flags & Qt::WindowStaysOnTopHint)
     text += "\n| Qt::WindowStaysOnTopHint";
 if (flags & Qt::CustomizeWindowHint)
     text += "\n| Qt::CustomizeWindowHint";
Run Code Online (Sandbox Code Playgroud)

但是当我这样做时:

Qt :: WindowFlags flags = 0;

flags = flags | Qt :: WindowStaysOnTopHint;
flags = flags & Qt :: WindowMinimizeButtonHint;
window->setWindowFlags (flags);
Run Code Online (Sandbox Code Playgroud)

第一个标志被覆盖.同时设置多个标志的方法是什么?

Exa*_*Exa 12

window->setWindowFlags (Qt::WindowStaysOnTopHint | Qt::WindowMinimizeButtonHint );
Run Code Online (Sandbox Code Playgroud)

供您参考:

Window Flags存储为WindowType为枚举类型的对象内的OR组合QFlags<WindowType>.

存储标志时,使用按位OR运算符组合它们的值.

有关详细信息,请参阅Qt文档.