Знакомство с Qt Designer
Запуск Designer
После установки Qt, вы можете запустить Qt Designer так же, как и любое другое приложение на хосте разработки. Также вы можете запустить Qt Designer непосредственно из Qt Creator. Qt Creator автоматически откроет все файлы .ui в интегрированном Qt Designer в режиме Проектирование.
В целом, интегрированный Qt Designer содержит те же функции, что и автономный Qt Designer. Для получения дополнительной информации о различиях, см. Руководство Qt Creator.
Если у вас есть большие формы, которые не помещаются в режиме Проектирование Qt Creator, вы можете открыть их в автономном Qt Designer.
Интерфейс пользователя
При использовании как отдельного приложения, интерфейс пользователя Qt Designer может быть настроен для обеспечения либо многооконного интерфейса (режим по умолчанию), либо режима пристыкованного окна. При использовании из интегрированной среды разработки (IDE) доступен только многооконный интерфейс. Вы можете переключаться между режимами в диалоговом окне Настройки из меню Правка.
В многооконном режиме вы можете организовать каждое окно инструментов в соответствии со своим стилем работы. Главное окно состоит из строчки меню, панели инструментов и области виджетов, содержащей виджеты, которые вы можете использовать для создания вашего пользовательского интерфейса.
|
Главное окно Qt Designer Строка меню предоставляет все стандартные действия для управления формами, использования буфера обмена и доступа к справочной информации по приложению. Текущий режим редактирования, окна инструментов и используемые формы также доступны через строку меню. Панель инструментов отображает общие действия, используемые при редактировании формы. Они также доступны через главное меню. Панель виджетов предоставляет общие виджеты и макеты, используемые для проектирования компонентов. Они сгруппированы по категориям, отражающим их использование или функции. |
Большинство функций Qt Designer доступны через строку меню, панель инструментов или область виджетов. Некоторые функции также доступны через контекстные меню, которые могут быть открыты над окнами формы. На большинстве платформ для открытия контекстных меню используется правая кнопка мыши.
|
Панель виджетов Qt Designer Панель виджетов предоставляет выбор стандартных виджетов Qt, макетов и других объектов, которые могут быть использованы для создания пользовательских интерфейсов на формах. Каждая категория на панели виджетов содержит виджеты с похожими функциями или связанными характеристиками. Вы можете отобразить все доступные объекты в категории, нажав на ручку рядом с меткой категории. Когда вы находитесь в режиме редактирования виджетов Режим редактирования виджетов, вы можете добавлять объекты в форму, перетаскивая соответствующие элементы с панели виджетов на форму и опуская их в нужное место. Qt Designer предоставляет функцию временного хранения, которая позволяет собирать часто используемые объекты в отдельной категории. Категорию временного хранения можно заполнить любым виджетом, текущим отображаемым в форме, перетащив его с формы на панель виджетов. Эти виджеты можно использовать так же, как и любые другие виджеты, но они также могут содержать дочерние виджеты. Откройте контекстное меню над виджетом, чтобы изменить его имя или удалить его из временного хранения. |
Концепция макетов в Qt
Макет используется для организации и управления элементами, составляющими пользовательский интерфейс. Qt предоставляет ряд классов для автоматического управления макетами — QHBoxLayout, QVBoxLayout, QGridLayout и QFormLayout. Эти классы решают задачу автоматического расположения виджетов, предоставляя пользовательский интерфейс, который ведет себя предсказуемо. К счастью, знание классов макетов не требуется для размещения виджетов с помощью Qt Designer. Вместо этого выберите один из вариантов Разместить горизонтально, Разместить в сетке и т. д. из контекстного меню.
Каждый виджет Qt имеет рекомендуемый размер, известный как sizeHint(). Менеджер макетов попытается изменить размер виджета, чтобы соответствовать его размеру подсказки. В некоторых случаях нет необходимости иметь другой размер. Например, высота QLineEdit всегда имеет фиксированное значение, зависящее от размера и стиля шрифта. В других случаях может потребоваться изменение размера, например, ширина QLineEdit или ширина и высота виджетов просмотра элементов. Здесь вступают в игру ограничения размера виджета — ограничения minimumSize и maximumSize. Эти свойства можно задать в редакторе свойств. Например, чтобы переопределить значение sizeHint() по умолчанию, просто установите minimumSize и maximumSize равными одному значению. В качестве альтернативы, чтобы использовать текущий размер в качестве значения ограничения размера, выберите один из вариантов Ограничение размера из контекстного меню виджета. Затем макет гарантирует, что эти ограничения соблюдаются. Для управления размером ваших виджетов с помощью кода вы можете переопределить sizeHint() в вашем коде.
На приведенном ниже снимке экрана показано разбиение базового пользовательского интерфейса, спроектированного с использованием сетки. Координаты на снимке экрана показывают положение каждого виджета в сетке.
Примечание: Внутри сетки объекты QPushButton фактически вложены. Кнопки справа сначала помещаются в QVBoxLayout, а кнопки внизу — сначала в QHBoxLayout. И, наконец, они помещаются в координаты (1,2) и (2,1) QGridLayout.
Для визуализации представьте макет как коробку, которая сжимается как можно сильнее, пытаясь аккуратно разместить ваши виджеты и, в то же время, максимально использовать доступное пространство.
Макеты Qt помогают, когда:
- Изменение размера пользовательского интерфейса для соответствия различным размерам окон.
- Изменение размера элементов внутри пользовательского интерфейса для адаптации к различным локализациям.
- Расположение элементов в соответствии с рекомендациями по макетам для разных платформ.
Таким образом, вам больше не нужно беспокоиться о переупорядочении виджетов для разных платформ, настроек и языков.
Нижеприведенный пример демонстрирует, как различные локализации могут влиять на пользовательский интерфейс. Когда локализация требует большего пространства для более длинных текстовых строк, макет Qt автоматически масштабируется, чтобы вместить это, в то же время гарантируя, что пользовательский интерфейс выглядит презентабельно и все еще соответствует рекомендациям платформы.
| Диалоговое окно на английском языке | Диалоговое окно на французском языке |
|---|---|
Процесс размещения виджетов состоит из создания иерархии макетов с минимальным количеством ограничений размера виджетов.
Для более технического взгляда на классы макетов Qt, обратитесь к документации Управление макетами.
© The Qt Company Ltd
Licensed under the GNU Free Documentation License, Version 1.3.
https://doc.qt.io/qt-6.0/designer-to-know.html