Qt QFrame在showEventshow上没有给出正确的尺寸

问题描述

我有一个奇怪的要求。它的长短是当调用QMainWindow::showEvent(QShowEvent* event)时,我要对QWidget进行大小调整。

简短说明

我在下面有一张布局的图片,因为它比文字更容易显示frameCapacityLayoutqframe,布局“损坏”。 frameCapacityCircle是具有网格布局的qframe

布局提取(2个水平间隔和frameCapacityCircle的大小/权重为1,1,1

enter image description here

组件层次结构

enter image description here

问题

我的qframe frameCapacityLayout在水平布局中给出了错误的几何值。

我检查了整个代码,只有frameCapacityLayout的5个引用都是“ getters”。此外,未设置最小尺寸或首选尺寸值。

呼叫时:

const QRect localGeometry = ui->frameCapacityContainer->geometry();

认尺寸为100 x 30,这没有意义,因为通过快速观察屏幕上的实际尺寸应至少为500px。

(如果我向minimumSize提供frameCapacityContainer,例如280 x 280,则它将返回此值,而不是100 x30。这不适用于frameCapacityContainer的任何子代)

enter image description here

我的问题:

在尺寸由父级布局确定的小部件上调用几何是否返回某种尺寸提示,因为在这种情况下这是唯一的可能性?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)