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