ric*_*dwb 11
如果您根本不需要任何标题按钮,可以通过设置一些窗口标志提示来实现:
setWindowFlags(Qt::Dialog | Qt::CustomizeWindowHint | Qt::WindowTitleHint);
Run Code Online (Sandbox Code Playgroud)
Qt的Demo应用程序有一个示例应用程序,可以让你试验这些标志(Qt Demo-> Widgets-> Window Flags),如果你想看看有什么不同的组合.
另一方面,如果您想要任何最小化/最大化/关闭按钮,您会注意到Qt强制显示系统菜单和窗口图标.我认为这是Qt对平台的概括,因为使用"关闭"按钮但没有系统菜单和窗口图标很容易找到本机Windows对话框的示例.
在这种情况下,您将需要一些Windows特定的代码,类似于此(未经测试):
#if defined(Q_WS_WIN)
// don't forget to #include <windows.h>
HWND hwnd = winId();
LONG_PTR style = GetWindowLongPtr(hwnd, GWL_STYLE);
style &= ~WS_SYSMENU; // unset the system menu flag
SetWindowLongPtr(hwnd, GWL_STYLE, style);
// force Windows to refresh some cached window styles
SetWindowPos(hwnd, 0, 0, 0, 0, 0,
SWP_NOMOVE | SWP_NOSIZE | SWP_NOZORDER | SWP_FRAMECHANGED);
#endif
Run Code Online (Sandbox Code Playgroud)
编辑:正如swongu评论的那样,只有在你想要一个没有系统菜单的关闭按钮时才有效.如果你想要一个最小化/最大化按钮但没有系统菜单,那你就不走运了.