У меня есть QWidget с кнопкой. Когда кнопка нажата, показать новое меньшее окно (тоже Qwidget). Я хочу, чтобы новое окно было отцентрировано по горизонтали и вертикально в главном окне. Код, который отображает новое окно:
QWidget *wdg = new QWidget;
QPushButton *closeBtn = new QPushButton("Close");
QHBoxLayout *layout = new QHBoxLayout;
layout->addWidget(closeBtn);
wdg->setLayout(layout);
wdg->show();
wdg->resize(400,200);
Использовать move
слот. Например:
QPoint centerPoint = oldWidget->geometry()->center();
newWidget->adjustSize();
newWidget->move(centerPoint.x() - newWidget->width()/2, centerPoint.y() - newWidget->height()/2);
Вы можете рассмотреть возможность использования frameGeometry()
вместо geometry()
,
http://qt-project.org/doc/qt-5/application-windows.html#window-geometry
Надеюсь, это поможет.