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