Spec-Zone.ru › Qt

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

Spec-Zone.ru

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