Qt:如何将窗口大小调整为新内容

Fra*_*une 11 qt

我有一个窗口包含一个QScrollArea带有几个小部件的窗口.

到目前为止,我在QScrollArea窗口的构造函数中创建了它的子窗口小部件,然后我正在垂直调整窗口大小以适应其内容resize(400, sizeHint().height()).到现在为止还挺好.

现在,我QScrollArea在运行时添加或删除小部件.添加或删除小部件后,如何使窗口垂直适合其内容,我该怎么办?我应该打电话adjustSize()吗? resize(sizeHint())?是应该打电话layout->activate()还是updateGeometry()先打电话?在这种情况下,哪种规模的政策真正重要 窗口,或滚动区域,或两者?我试着将它们全部设置为Expanding.

我在Windows上使用Qt 4.6.

Fra*_*une 10

似乎resize(sizeHint())在小部件被添加到滚动区域之后调用(没有任何其他魔法)实际上是诀窍.不知何故第一次错过了.