Hans
Hans

Reputation:

Qt: how to set main window's initial position?

I think the normally window manager determines the initial position of the QMainWindow position on the desk top. I want to set the initial position myself. How is this done with Qt on Windows?

Upvotes: 20

Views: 19415

Answers (2)

Paul Dixon
Paul Dixon

Reputation: 300825

You can restore the window geometry with restoreGeometry(), and the state of docked elements with restoreState(), during the construction of your MainWindow...

    QSettings settings("yourcompany", "yourapp");

    restoreGeometry(settings.value("geometry").toByteArray());
    restoreState(settings.value("state").toByteArray(),YOUR_UI_VERSION);

Then, if you override closeEvent(), you can save the state as follows:

    QSettings settings("yourcompany", "yourapp");
    
    settings.setValue("geometry", saveGeometry());
    settings.setValue("state", saveState(YOUR_UI_VERSION));

YOUR_UI_VERSION is a constant you should increment when your UI changes significantly to prevent attempts to restore an invalid state.

Upvotes: 25

user36457
user36457

Reputation:

I believe you're looking for setGeometry.

Upvotes: 6

Related Questions