how to set QDialog width and height and allow automatic window placement

Alex picture Alex · Feb 7, 2014 · Viewed 25.8k times · Source

Is there a way to just initialize a QDialog's width and height and not change the x and y coordinates without using a ui file? I just have a simple QDialog and want to set only the width and height, and have the x and y automatically set to the center of the parent, but when I try setGeometry, the inherited geometry's x and y are 0. How does the x and y get set when the dialog is created using a ui file?

class MyDialog : public QDialog
{
    MyDialog::MyDialog(QWidget *parent) :
        QDialog(parent)
    {
        setGeometry(geometry().x(), geometry().y(), 200, 400);
    }
}

Answer

Zlatomir picture Zlatomir · Feb 7, 2014

Use with resize instead of setGeometry, it should work as you expected.