我试图居中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();
首先获取您自己的窗口rect的副本。
windowRect.moveCenter(screenGeometry.center());
将副本移到屏幕矩形的中央。
move(windowRect.topLeft());
执行实际的移动:将窗口的左上角设置为计算出的左上角。无需调整大小。
关于c++ - 如何居中QDialog?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/36755628/