Как заставить виджет Qt расти с размером окна?
Я хочу иметь небольшой QFormLayout Это растет, чтобы заполнить свой родительский виджет.
Я создал новый .ui С помощью QWidget шаблон в Qt Designer. Я поставил QFormLayout внутри этого "окна", затем поместите некоторые элементы управления внутри этого QFormLayout.
все работает достаточно хорошо, но QFormLayout всегда остается в размере, который я установил в Qt Designer. Я хотел бы QFormLayout, чтобы заполнить его Родительский виджет и расти / сжиматься с ним.
как я могу этого достичь это?
3 ответов
в конструкторе активируйте centralWidget и назначьте макет, например горизонтальный или вертикальный макет. Затем ваш QFormLayout автоматически изменит размер.

всегда убедитесь, что все виджеты есть макет! В противном случае автоматическое изменение размера сломается с этим виджетом!
см. также
контроль настаивать на слишком большой и не изменить, в QtDesigner
Я обнаружил, что невозможно назначить макет centralwidget, пока я не добавил по крайней мере одного ребенка под ним. Затем я мог бы выделить крошечный значок с красной меткой "отключено", а затем нажмите на макет на панели инструментов дизайнера вверху.
принятый ответ (его изображение) неверен, по крайней мере, теперь в QT5. Вместо этого вы должны назначить макет корневому объекту / виджету (указывая на вышеупомянутое изображение, оно должно быть MainWindow вместо centralWidget). Также обратите внимание, что у вас должен быть хотя бы один QObject создано под ним, чтобы это работало. Сделайте это, и ваш пользовательский интерфейс станет реагировать на изменение размера окна.