Автоматическое расширение раскладки с помощью Qt-Designer

Я использую Qt Designer.

Я хочу создать QVBoxLayout, который будет автоматически расширяться, чтобы заполнить все окно.

Макет QVBoxLayout остается фиксированным.

Как я могу заставить QVBoxLayout развернуть и заполнить все окно через конструктор?

Ответ 1

После создания QVBoxLayout в Qt Designer щелкните правой кнопкой мыши фон вашего виджета/диалогового окна (а не QVBoxLayout, но родительский виджет) и выберите Lay Out → Lay Out в сетке в нижней части контекстного меню. QVBoxLayout теперь должен растягиваться, чтобы соответствовать окну, и будет автоматически изменяться по размеру, когда все окно будет изменено.

Ответ 2

В соответствии с документацией должен быть установлен макет верхнего уровня.

Макет верхнего уровня необходим для правильного изменения размеров виджета при изменении размера окна. Чтобы проверить, установлен ли макет верхнего уровня, предварительно просмотрите виджет и попытайтесь изменить размер окна, перетащив размер.

Вы можете установить его, очистив выделение и щелкнув правой кнопкой мыши по самой форме и выбрав один из макетов, доступных в контекстном меню.

Qt layouts

Ответ 3

Я попытался найти свойство "fit to screen", но такого нет.

Но установка виджета "maximumSize" на "некоторое большое число" (например, 2000 x 2000) автоматически поместит виджет в пространство родительского виджетов.

Ответ 4

Как только вы добавите макет с хотя бы одним виджем в нем, выберите свое окно и нажмите кнопку "Обновить" в QtDesigner. Интерфейс будет изменен в соответствии с самым оптимизированным размером, и ваш макет будет соответствовать всему окну. Затем при изменении размера окна макет будет изменен таким же образом.

Ответ 5

Установите для horizontalPolicy и VerticalPolicy для элементов управления/виджетов значение "Предпочтительный" .