如何在show()之前预览布局中小部件的大小?

Jas*_*enX 16 qt

实际应用show()窗口小部件窗口之前,如何预览应用布局规则后窗口中窗口小部件的大小?在初始show()命令之前,似乎所有尺寸都是100x30 .我该如何解决这个问题?

Ale*_*lke 9

invalidate()对我有用.

请注意,如果您执行以下操作,它将按此处的要求工作(至少在我的代码中似乎没问题):

widget->show();
widget->layout()->invalidate();
widget->hide();
Run Code Online (Sandbox Code Playgroud)

这不显示屏幕上的小部件,因为在hide()发生之前您不会将控制权交还给队列.在两者之间,invalidate()计算正确的位置.


Jan*_*nis 8

对我来说,以下工作:

window->layout()->update()
window->layout()->activate()
Run Code Online (Sandbox Code Playgroud)

这可能与Alexis的回答相同,但它不需要显示 - 然后隐藏窗口.