Qt: как изменить размер окна на новый контент

У меня есть окно, содержащее QScrollArea с двумя виджетами в нем.

До сих пор я создавал QScrollArea и дочерние виджеты в конструкторе моего окна, а затем менял размер окна по вертикали, чтобы соответствовать его содержимому, используя resize(400, sizeHint().height()). Пока что так хорошо.

Теперь я добавляю или удаляю виджеты во QScrollArea во время выполнения. Что делать, добавив или удалив виджеты, чтобы окно соответствовало его содержимому по вертикали? Должен ли я позвонить adjustSize()? resize(sizeHint())? Следует ли сначала позвонить layout->activate() или, может быть, updateGeometry()? Какая политика размера действительно имеет значение в этом случае? Окна, или область прокрутки, или и то, и другое? Я попытался установить их все на Expanding.

Я использую Qt 4.6 для Windows.

Ответ 1

Кажется, что вызов resize(sizeHint()) (без какой-либо другой магии) после добавления виджетов в область прокрутки на самом деле делает трюк. Как-то пропустил это в первый раз.