Important: Please read the Qt Code of Conduct -

Remove minimize button from QDialog

  • Hi all,
    I'm working in a Linux application.

    I need to remove minimize button from a QDialog. I tried some solution without success.

    The only one solution that works is:
    QDialog *parametri_dialog = new QDialog(widget_tab);
    parametri_dialog->setWindowFlags(parametri_dialog->windowFlags() | Qt::FramelessWindowHint);

    but this way all button disappear and I also can't resize dialog.

    If I put the line:
    parametri_dialog->setWindowFlags(parametri_dialog->windowFlags() & ~(Qt::WindowMinimizeButtonHint));

    nothing happend.

    Can you help me?

  • bq. From "Qt::WindowFlags docs":
    The CustomizeWindowHint flag is used to enable customization of the window controls. This flag must be set to allow the WindowTitleHint, WindowSystemMenuHint, WindowMinimizeButtonHint, WindowMaximizeButtonHint and WindowCloseButtonHint flags to be changed.

    So you should also set the Qt::CustomizeWindowHint flag.

  • I tried this:
    parametri_dialog->setWindowFlags(parametri_dialog->windowFlags() & ~(Qt::WindowMinimizeButtonHint) & Qt::CustomizeWindowHint);

    but now dialog doesn't show nothing...

  • Now I tried windowflags Qt example (from qt source) and there is no possibility to remove only minimize button an keep the possibility to move the dialog and resize it.

    Can someone confirm me this?

  • This works for me:

    #include <QApplication>
    #include <QDialog>

    int main(int argc, char *argv[])
    QApplication a(argc, argv);
    a.connect(&a, SIGNAL(lastWindowClosed()), &a, SLOT(quit()));

    QDialog d;
    d.setWindowFlags( Qt::CustomizeWindowHint | Qt::WindowCloseButtonHint );
    return a.exec&#40;&#41;;


    You might set some other window flags too.

  • ... unfortunately doesn't works form me.

    Are you using Linux or Windows?

  • I'm on a Mac.

    On Linux, you might want to add Qt::WindowTitleHint to the flags.

    Window decoration is platform dependend, so it could be that your approach is not achievable at all.

  • Thanks, now I think it's not possible in linux.

Log in to reply