Использование макетов в Qt Designer
Перед использованием формы, объекты на форме необходимо поместить в макеты. Это гарантирует, что объекты будут отображаться должным образом при предварительном просмотре формы или использовании её в приложении. Помещение объектов в макет также гарантирует, что они будут правильно масштабироваться при изменении размеров формы.
Применение и разрыв макетов
Самый простой способ управления объектами — это применение макета к группе существующих объектов. Это достигается выбором объектов, которые необходимо управлять, и применением одного из стандартных макетов с помощью основной панели инструментов, меню Форма или контекстного меню формы.
После вставки виджетов в макет, невозможно перемещать и изменять их размер индивидуально, так как сам макет управляет геометрией каждого виджета внутри него, учитывая подсказки, предоставляемые разделителями. Вместо этого, необходимо либо разорвать макет и вручную настроить геометрию каждого объекта, либо можно повлиять на геометрию виджета, изменив размер макета.
Чтобы разорвать макет, нажмите Ctrl+0 или выберите Разрыв макета из контекстного меню формы, меню Форма или основной панели инструментов. Также можно добавлять и удалять разделители из макета, чтобы влиять на геометрию виджетов.
|
Вставка объектов в макет Объекты могут быть вставлены в существующий макет, перетаскивая их из текущих позиций и опуская их в нужное место. При перетаскивании объекта над макетом отображается синий курсор, показывающий, куда будет добавлен объект. |
Установка макета верхнего уровня
Макет верхнего уровня формы можно установить, очистив выделение (нажав левой кнопкой мыши на самой форме) и применив макет. Макет верхнего уровня необходим для того, чтобы ваши виджеты масштабировались корректно при изменении размера окна. Чтобы проверить, установили ли вы макет верхнего уровня, предварительно просмотрите свой виджет и попробуйте изменить размер окна, перетаскивая маркер изменения размера.
|
Применение макета Чтобы применить макет, можно выбрать нужный макет из панели инструментов слева или из контекстного меню ниже. |
Горизонтальные и вертикальные макеты
Самый простой способ расположить объекты на форме — разместить их в горизонтальном или вертикальном макете. Горизонтальные макеты гарантируют, что виджеты внутри выровнены по горизонтали, вертикальные макеты — по вертикали.
Горизонтальные и вертикальные макеты можно комбинировать и вкладывать друг в друга на любой глубине. Однако, если вам нужен больший контроль над расположением объектов, рассмотрите использование сетчатого макета.
Сетчатый макет
Сложные макеты формы можно создать, разместив объекты в сетчатом макете. Этот вид макета предоставляет разработчику формы намного больше свободы в расположении виджетов на форме, но может привести к менее гибкому макету. Однако для некоторых типов макета формы сетчатое расположение более подходит, чем вложенное расположение горизонтальных и вертикальных макетов.
Макет формы
Класс QFormLayout управляет виджетами в форме с двумя колонками; левая колонка содержит метки, а правая — виджеты полей, такие как поля ввода, спинбоксы и т. д. Класс QFormLayout соответствует различным рекомендациям по стилю платформы и поддерживает перенос для длинных строк.
Файл пользовательского интерфейса выше приводит к предварительным просмотрам, показанным ниже.
| Windows XP | macOS | Cleanlooks |
|---|---|---|
Разделительные макеты
Еще один распространенный способ управления макетом объектов на форме — поместить их в разделитель. Эти разделители располагают объекты горизонтально или вертикально так же, как и обычные макеты, но также позволяют пользователю изменять размер пространства, выделенного для каждого объекта.
Хотя QSplitter является контейнерным виджетом, Qt Designer рассматривает объекты разделителя как макеты, применяемые к существующим виджетам. Чтобы поместить группу виджетов в разделитель, выберите их как описано здесь, а затем примените макет разделителя, используя соответствующую кнопку на панели инструментов, комбинацию клавиш или пункт меню Макет контекстного меню.
Сочетания клавиш
Помимо стандартных элементов панели инструментов и контекстного меню, также есть набор сочетаний клавиш для применения макетов к виджетам.
| Макет | Сочетание клавиш | Описание |
|---|---|---|
| Горизонтальный | Ctrl+1 | Размещает выбранные объекты в горизонтальном макете. |
| Вертикальный | Ctrl+2 | Размещает выбранные объекты в вертикальном макете. |
| Сетчатый | Ctrl+5 | Размещает выбранные объекты в сетчатом макете. |
| Форма | Ctrl+6 | Размещает выбранные объекты в макете формы. |
| Горизонтальный разделитель | Ctrl+3 | Создает горизонтальный разделитель и помещает выбранные объекты в него. |
| Вертикальный разделитель | Ctrl+4 | Создает вертикальный разделитель и помещает выбранные объекты в него. |
| Изменение размера | Ctrl+J | Изменяет размер макета, чтобы гарантировать, что каждый дочерний объект имеет достаточно места для отображения своего содержимого. См. QWidget::adjustSize() для получения дополнительной информации. |
Примечание: Ctrl+0 используется для разрыва макета.
© The Qt Company Ltd
Licensed under the GNU Free Documentation License, Version 1.3.
https://doc.qt.io/qt-5.9/designer-layouts.html