Использование макетов в 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/archives/qt-5.6/designer-layouts.html