Qt:导致布局修正而不调用show()

时间:2014-12-18 02:21:04

标签: c++ qt layout

我正在修复一些Qt / C ++代码中的错误。有一个小部件,当第一次显示时它的布局是错误的,但在被隐藏并再次显示之后,它的布局是正确的。我在代码中分散了一些跟踪,以便在不同时间打印窗口小部件元素的大小和位置,我可以看到它是第一次调用show()导致布局自行修正。我想要做的是在显示小部件之前触发布局修正。我已经尝试过每一次我能想到的黑暗镜头。我拨打了updateGeometry()adjustSize()layout()->update()layout()->invalidate()layout()->activate()。我在小部件上调用了这些,它是父小部件。什么都没有用。唯一有效的方法是调用show()

那么,有没有办法让Qt小部件更正它的布局而不用显示它?

编辑[0]:​​我无法轻松显示屏幕截图,因为它显示在未运行X的嵌入式系统上。但基本上;小部件由几个标签组成,它们以宽度和高度的一些默认值开始,这使得它们全部被粉碎到小部件的一侧。我可以手动将位置和大小设置为我想要的值,但我知道我不需要,因为Qt在第一次显示小部件后完美地校正了布局。

编辑[1]:此外,创建布局和标签的代码由Qt uic从Qt Designer .ui文件自动生成。

0 个答案:

没有答案