Qtで直接行うことはできません。私はQtに同梱されている "Window Flags"の例で遊んだので、動作する組み合わせは得られません。
本当に必要な場合は、おそらくWindows APIを直接使用する必要があります。ここでは、ウィンドウ内の閉じるボタンを有効/無効にするために使用した関数を示します。あなたはおそらくあなたの目的のためにそれを適応させることができます。 (あるいは、それをシンプルに保ち、ちょうどあなたのフォーム上のどこかに余分な「ヘルプ」ボタンを追加!:-))
#include "Windows.h"
#include "WinUser.h"
typedef HMENU (WINAPI*pGetSystemMenu)(HWND, BOOL);
typedef BOOL (WINAPI*pEnableMenuItem)(HMENU, UINT, UINT);
void myapp::SetCloseButtonEnabled(QWidget *target, bool enabled) {
// See msdn.microsoft.com/en-us/library/windows/desktop/ms647636(v=vs.85).aspx
QLibrary user32(QLatin1String("user32"));
pGetSystemMenu GetSystemMenu =
(pGetSystemMenu)user32.resolve("GetSystemMenu");
pEnableMenuItem EnableMenuItem =
(pEnableMenuItem)user32.resolve("EnableMenuItem");
HMENU menu = GetSystemMenu(target->winId(), false);
EnableMenuItem(menu,
SC_CLOSE,
MF_BYCOMMAND | (enabled ? MF_ENABLED : MF_GRAYED));
}
既知のバグのようです:https://bugreports.qt-project.org/browse/QTBUG-8049 – JCooper