Я хочу иметь маленький, QFormLayout
который растет, чтобы заполнить свой родительский виджет.
Я создал новый файл .ui, используя QWidget
шаблон в Qt Designer. Я помещаю QFormLayout
внутрь этого «окна», а затем помещаю в него элементы управления QFormLayout
.
Все это работает достаточно хорошо, но QFormLayout
всегда остается в том размере, который я установил в Qt Designer. Я хотел бы, QFormLayout
чтобы он заполнил свой родительский виджет и увеличился / уменьшился вместе с ним.
Как я могу этого добиться?
источник
Я обнаружил, что невозможно назначить макет центральному виджету, пока я не добавлю под ним хотя бы одного дочернего элемента. Затем я мог выделить крошечный значок с красной пометкой «отключено» и затем щелкнуть макет на панели инструментов конструктора вверху.
источник
Принятый ответ (его изображение) неверен, по крайней мере, сейчас в QT5. Вместо этого вы должны назначить макет корневому объекту / виджету (указывая на вышеупомянутое изображение, оно должно быть
MainWindow
вместоcentralWidget
). Также обратите внимание, что у вас должен бытьQObject
создан хотя бы один под ним, чтобы это работало. Сделайте это, и ваш пользовательский интерфейс станет реагировать на изменение размера окна.источник
Вам необходимо изменить тип макета по умолчанию для объекта QWidget верхнего уровня с типа макета «Разрыв» на другие типы макета (вертикальный макет, горизонтальный макет, макет сетки, макет формы). Например:
Примерно так:
источник