Если вам не нужны какие-либо кнопки с надписями, вы можете добиться этого, установив некоторые подсказки флагов окна :
setWindowFlags(Qt::Dialog | Qt::CustomizeWindowHint | Qt::WindowTitleHint);
Демонстрационное приложение Qt имеет пример приложения, которое позволяет вам экспериментировать с этими флагами ( Qt Demo-> Widgets-> Флаги окна ), если вы хотите увидеть, что делают различные комбинации.
С другой стороны, если вам нужна любая из кнопок «Свернуть», «Развернуть» / «Закрыть», вы заметите, что 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
Редактировать: Как прокомментировал swongu, это работает, только если вы хотите иметь кнопку закрытия без системного меню. Если вам нужна кнопка минимизации / максимизации, но нет системного меню, вам не повезло.