Решение, которое я нашел, состояло в том, чтобы иметь эти <form>
, предназначаются для скрытого iFrame. iFrame может тогда выполнить JS для отображения пользователю, что это завершено (на загрузке страницы).
Если вам вообще не нужны какие-либо кнопки с заголовками, вы можете добиться этого, установив несколько подсказок флагов окна :
setWindowFlags(Qt::Dialog | Qt::CustomizeWindowHint | Qt::WindowTitleHint);
Демо-приложение Qt имеет пример приложения, которое позволяет вам поэкспериментировать с этими флагами ( Qt Demo-> Widgets-> Window Flags ), если вы хотите увидеть, что делают разные комбинации.
С другой стороны, если вы хотите свернуть / развернуть / Close, вы заметите, что 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, это работает, только если вы хотите иметь кнопку закрытия без системного меню. Если вам нужна кнопка свертывания / развертывания, но нет системного меню, вам не повезло.