Spec-Zone.ru › Qt 5.13

Использование макетов в Qt Designer

Прежде чем форма может быть использована, объекты на форме необходимо разместить в макетах. Это гарантирует, что объекты будут отображаться должным образом при предварительном просмотре формы или использовании её в приложении. Размещение объектов в макете также гарантирует, что они будут правильно масштабироваться при изменении размеров формы.

После того, как виджеты были вставлены в макет, их невозможно перемещать и изменять размер индивидуально, так как сам макет управляет геометрией каждого виджета в нём, учитывая подсказки, предоставляемые разделителями. Разделители могут быть добавлены в макет для влияния на геометрию виджетов.

Макеты могут быть вложены для формирования иерархии. Например, чтобы добиться типичной макетной схемы диалогового окна с горизонтальной строкой кнопок, элементы диалогового окна можно разместить с помощью вертикального макета, содержащего горизонтальный макет с кнопками внизу. Для ознакомления с системой макетов Qt см. Управление макетами.

Чтобы разорвать макет, нажмите Ctrl+0 или выберите Разбить макет из контекстного меню формы, меню Форма или основной панели инструментов.

Установка главного макета

Главный макет формы можно установить, очистив выделение (щелкните левой кнопкой мыши по самой форме) и применив макет. Главный макет необходим для обеспечения корректного масштабирования виджетов при изменении размера окна. Чтобы проверить, установили ли вы главный макет, предварительно просмотрите свой виджет и попробуйте изменить размер окна, перетащив маркер изменения размера.

Применение макета

Чтобы применить макет, вы можете выбрать нужный макет с панели инструментов слева или из контекстного меню.

Аналогичным образом, главные макеты устанавливаются на контейнерных виджетах (QGroupBox) или на страницах страниц контейнерных виджетов (QTabWidget, QToolBox и QStackedWidget) соответственно. Для этого необходимо выбрать контейнерный виджет.

Главные макеты не отображаются как отдельные объекты в Инспекторе объектов. Их свойства отображаются под свойствами виджета основной формы, контейнерного виджета или страницы контейнерного виджета в Редакторе свойств.

Объекты макета

Объекты макета создаются путем применения макета к группе существующих объектов. Это достигается путем выбора объектов, которые необходимо управлять, и применения одного из стандартных макетов с помощью основной панели инструментов, меню Форма или контекстного меню формы.

Объект макета обозначается красной рамкой на форме и отображается как объект в Инспекторе объектов. Его свойства (отступы и ограничения) отображаются в Редакторе свойств.

Объект макета можно выбрать и поместить в другой макет вместе с другими виджетами и объектами макета для построения иерархии макетов.

При выборе дочернего объекта макета, родительский объект макета можно выбрать, удерживая нажатой клавишу Shift при щелчке на нём. Это позволяет выбрать определённый макет в иерархии, что иначе затруднительно из-за небольшой рамки.

Вставка объектов в макет

Объекты можно вставить в существующий макет, перетащив их из текущего положения и отпустив в нужном месте. При перетаскивании объекта над макетом отображается синий курсор, указывающий место добавления объекта.

Вставка объектов в макет

Типы макетов

Горизонтальные и вертикальные (блочные) макеты

Самый простой способ размещения объектов на форме — размещение их в горизонтальном или вертикальном макете. Горизонтальные макеты гарантируют, что виджеты выстроены горизонтально; вертикальные — что они выстроены вертикально.

Горизонтальные и вертикальные макеты могут быть объединены и вложены на любую глубину. Однако, если вам нужен больший контроль над размещением объектов, рассмотрите использование сетки.

Сетка

Сложные макеты формы можно создать, разместив объекты в сетке. Этот тип макета даёт разработчику формы гораздо больше свободы в размещении виджетов на форме, но может привести к менее гибкому макету. Однако для некоторых типов макетов формы сетчатое расположение более подходит, чем вложенное расположение горизонтальных и вертикальных макетов.

Макет формы

Класс 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.13/designer-layouts.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API