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