gpt4 book ai didi

qt - 如何在屏幕上居中 Qt 主窗体?

转载 作者:行者123 更新时间:2023-12-04 10:02:16 24 4
gpt4 key购买 nike

我在主窗体的构造函数中尝试了这些:

QRect desktopRect = QApplication::desktop()->availableGeometry(this);
move(desktopRect.center() - frameGeometry().center());

QRect desktopRect = QApplication::desktop()->availableGeometry(this);
move(desktopRect.center() - rect().center());

但两者都将表单的右下角放在屏幕中央,而不是将表单居中。有任何想法吗?

最佳答案

I've tried these in my mainform's constructor



这很可能是问题所在。此时您可能没有有效的几何信息,因为对象不可见。

首次构造对象时,它基本上位于 (0,0)与预期 (width,height) , 像这样:
frame geometry at construction:  QRect(0,0 639x479) 

但是,显示后:
frame geometry rect:  QRect(476,337 968x507) 

因此,您还不能依赖您的 frameGeometry()信息。

编辑 : 话虽如此,我认为您可以轻松地根据需要移动它,但为了完整起见,我将放入 Patrice's code这不依赖于框架几何信息:
QRect desktopRect = QApplication::desktop()->availableGeometry(this);
QPoint center = desktopRect.center();

move(center.x() - width() * 0.5, center.y() - height() * 0.5);

关于qt - 如何在屏幕上居中 Qt 主窗体?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3424918/

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