让QScrollArea立即调整其子窗口小部件的大小

我有一个QScrollArea(我们称之为myContainer),它包含并滚动一个子视图(我们称之为myChildWidget) . 所有工作都很好 - 当我动态更改myChildWidget的高度以响应某些东西时,如果高度超过myContainer(QScrollArea)的高度,则垂直滚动条会弹出视图,从而有效地缩小myChildWidget,因为我已将其设置为调整其大小孩子使用:

myContainer->setWidgetResizable(true);

问题是myChildWidget实际上直到以后才调整大小,而不是在我设置新的高度或尝试调整myContainer的大小时,所以我不能做某些事情取决于它的新宽度而没有子类化并放入一大堆额外的代码 . 当然,我可以调用一些东西来让QScrollArea立即自动调整其孩子的大小,对吧?我可以用:

QCoreApplication::processEvents();

但问题是,当我没有完成设置时,它会导致窗口小部件闪烁和重绘 . 我已经在容器及其子容器上尝试了update(),updateGeometry()和adjustSize(),但都没有工作 . 我缺少什么?谢谢你的帮助 .

回答(0)