问题
Qt 4.8 based, application - Issue with QDialog, minimize button
Windows and Gnome (linux)
- The modal dialog appears with the close button on the right top, and the minimize button is nonexistent.
- The minimize option are grayed out in every dialog.
- This makes sense, since the QDialog is modal - if you minimize it, the whole application will be blocked.
But here comes the issue:
- in KDE (linux) the minimize-maximize button appears.
It seems that this is a platform dependent feature -
I am not quite sure on what do do.
Any ideas...? (I tried already with a few windowsFlags but could not find the one set that works.
Tried:
- setWindowFlags( Qt::CustomizeWindowHint | Qt::WindowCloseButtonHint );
- Qt::WindowFlags flags = getWindowFlags( ); flags |= Qt::WindowMinimizeButtonHint; setWindowFlags(flags)
--- But the basic question is why the behavior on Windows/GNOME is different from KDE
回答1:
if you want the MainWindow don't have any buttons on top use this in constructor of MainWindow:
this->setWindowFlags(Qt::SubWindow);
and if you want to remove just the minimize button use this:
this->setWindowFlags(Qt::Dialog);
回答2:
From the Qt Documentation:
In Linux with KDE this code make a window without an close and minimize and maximize buttons in title bar.
setWindowFlags( Qt::Dialog | Qt::WindowTitleHint );
来源:https://stackoverflow.com/questions/26146574/qdialog-how-to-remove-the-minimize-button