Qt C ++显示以旧窗口为中心的新窗口

时间:2014-06-24 21:52:17

标签: c++ qt centering

我有按钮的QWidget。按下按钮时,显示新的较小窗口(也是Qwidget)。我希望然后新窗口在主窗口上居中水平和veritcal。显示新窗口的代码是:

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);

1 个答案:

答案 0 :(得分:1)

使用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

希望有所帮助。