1、主窗口居中(主窗口为w)
QDesktopWidget *desktop = QApplication::desktop();
w.move((desktop->width() - w.width())/ 2, (desktop->height() - w.height()) /2);
w.show();
2、子窗口居中父窗口
if(widget)
{
//获取父窗口geometry
QRect rect = widget->geometry();
//计算显示原点
int x = rect.x() + rect.width()/2 - this->width() /2;
int y = rect.y() + rect.height()/2 - this->height()/2;
this->move(x, y);
}
3、按比例在桌面显示窗口
x: 水平方向比例 y:垂直方向比例
// 初始启动居中于桌面
QDesktopWidget *pDeskdop = QApplication::desktop();
int initWidth = pDeskdop->width() / x;
int initheight = pDeskdop->height() / y;
int posX = (pDeskdop->width() - initWidth) / 2;
int posY = (pDeskdop->height() - initheight) / 2;
setGeometry(posX, posY, initWidth, initheight);
setFixedSize(initWidth, initheight);