QDialog如何居中?
How to center QDialog?
我正在尝试将我的 QDialog 居中。
这是我使用的代码:
QRect screenGeometry = QApplication::desktop()->screenGeometry();
int x = (screenGeometry.width() - this->width()) / 2;
int y = (screenGeometry.height() - this->height()) / 2;
this->move(x, y);
但是我的对话没有出现在合适的位置。当我打印对话框的宽度和高度值时,我注意到它们比真实值小得多。为了检查某些东西是否以错误的方式工作,我改变了它的几何形状:
this->setGeometry(100,100,this->width(),this->height());
我的对话框缩小了...
谁能告诉我这是怎么回事?
QRect screenGeometry = QApplication::desktop()->screenGeometry();
QRect windowRect = rect();
首先得到一份你自己的window rect。
windowRect.moveCenter(screenGeometry.center());
将副本移动到屏幕矩形的中心。
move(windowRect.topLeft());
执行实际移动:将您的 windows 左上角点设置为计算出的左上角点。无需调整大小。
我正在尝试将我的 QDialog 居中。
这是我使用的代码:
QRect screenGeometry = QApplication::desktop()->screenGeometry();
int x = (screenGeometry.width() - this->width()) / 2;
int y = (screenGeometry.height() - this->height()) / 2;
this->move(x, y);
但是我的对话没有出现在合适的位置。当我打印对话框的宽度和高度值时,我注意到它们比真实值小得多。为了检查某些东西是否以错误的方式工作,我改变了它的几何形状:
this->setGeometry(100,100,this->width(),this->height());
我的对话框缩小了...
谁能告诉我这是怎么回事?
QRect screenGeometry = QApplication::desktop()->screenGeometry();
QRect windowRect = rect();
首先得到一份你自己的window rect。
windowRect.moveCenter(screenGeometry.center());
将副本移动到屏幕矩形的中心。
move(windowRect.topLeft());
执行实际移动:将您的 windows 左上角点设置为计算出的左上角点。无需调整大小。