Автоматически расширяемый макет с Qt-Designer - PullRequest
192 голосов
/ 16 августа 2010

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

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

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

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

Ответы [ 5 ]

326 голосов
/ 16 августа 2010

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

13 голосов
/ 29 июля 2016

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

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

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

Qt layouts

2 голосов
/ 09 января 2011

Я пытался найти свойство "соответствовать экрану", но такого не существует.

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

0 голосов
/ 12 марта 2015

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

0 голосов
/ 16 августа 2010

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

...