我的QTabWidget
启动有2个标签。
QSize
稍后我将使用其中的小部件在新打开的标签中绘制类似的元素。问题在于,如果尚未显示选项卡2,则当前元素的大小为640x480(显然是默认值)。选择选项卡2后,将“绘制”元素,并根据分辨率,窗口大小等获得其大小。
如何在不打开选项卡2的情况下强制在后台绘制元素,以便获得元素的大小如果打开了选项卡将有?repaint
并且update
不要那样做。
我当前的解决方法是在打开选项卡2的情况下启动并在main.cpp
两者之间切换到选项卡1 myWindow.show()
,myApp.exec()
但这似乎有点脏。
由于性能原因,在size()
实际布局和显示QWidget之后,不能保证QWidget的方法返回其期望值。
如果您需要提前知道一个QWidget的大小有什么会,你可以调用它的sizeHint()
方法来代替,这将强制马上进行计算,使正确的尺寸,甚至如果它尚未计算被退回。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句