gpt4 book ai didi

c++ - QDialog如何居中?

转载 作者:塔克拉玛干 更新时间:2023-11-03 07:13:46 25 4
gpt4 key购买 nike

我试图让我的 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();

首先获取你自己的窗口矩形的拷贝。

windowRect.moveCenter(screenGeometry.center());

将拷贝移动到屏幕矩形的中心。

move(windowRect.topLeft());

执行实际移动:将窗口左上角设置为计算出的左上角。无需调整大小。

关于c++ - QDialog如何居中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36755628/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com