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