QDialog - How to remove the minimize button

Theo picture Theo · Oct 1, 2014 · Viewed 7.5k times · Source

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

Answer

mostafaTmj picture mostafaTmj · Oct 2, 2014

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);