I've tried these in my mainform's constructor:
QRect desktopRect = QApplication::desktop()->availableGeometry(this);
move(desktopRect.center() - frameGeometry().center());
QRect desktopRect = QApplication::desktop()->availableGeometry(this);
move(desktopRect.center() - rect().center());
but both put the bottom right corner of the form at about the center of the screen, instead of centering the form. Any ideas?
That's likely the problem. You probably don't have valid geometry information at this point because the object isn't visible.
When the object is first constructed, it's essentially positioned at
(0,0)
with it's expected(width,height)
, as such:But, after being shown:
Thus, you can't yet rely on your
frameGeometry()
information.EDIT: With that said, I presume you can easily move it as desired, but for completeness I'm dropping in Patrice's code which doesn't depend on the frame geometry information: