Se non avete bisogno di alcun pulsante didascalia a tutti, è possibile raggiungere questo impostando alcuni window flag hints:
setWindowFlags(Qt::Dialog | Qt::CustomizeWindowHint | Qt::WindowTitleHint);
applicazione Demo di Qt ha un'applicazione di esempio che consente di sperimentare con queste bandiere (Qt Demo -> Widget-> Window Flags) se vuoi vedere cosa fanno le diverse combinazioni.
D'altra parte, se si desidera che una qualsiasi delle Riduzione/ingrandimento/Chiudi pulsanti, si noterà Qt costringe il menu di sistema e l'icona la finestra a vedere. Penso che sia Qt a generalizzare le piattaforme un po ', perché è molto facile trovare esempi di dialoghi nativi di Windows con a pulsante Chiudi ma senza il menu di sistema e l'icona della finestra.
In questo caso, avrete bisogno di un po 'di codice di Windows specifica, simile a questo (non testato):
#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
Edit: Come commentato da swongu, questo funziona solo se si vuole avere un pulsante di chiusura senza menu di sistema. Se vuoi un pulsante minimizza/massimizza ma nessun menu di sistema, sei sfortunato.
Quale sistema operativo? Sarà sicuramente specifico per la piattaforma (se possibile). – rohanpm
Oh, mi dispiace. Per Windows, ma si spera che esista una soluzione multipiattaforma. – swongu