Spec-Zone.ru › Qt 5.6

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

Создание пользовательских плагинов виджетов

При реализации пользовательского плагина виджета для Qt Designer необходимо унаследовать класс QDesignerCustomWidgetInterface, чтобы предоставить свой пользовательский виджет в Qt Designer. Один пользовательский плагин виджета создаётся как отдельная библиотека. Если вы хотите включить несколько пользовательских плагинов виджетов в одной библиотеке, необходимо дополнительно унаследовать класс QDesignerCustomWidgetCollectionInterface.

Чтобы обеспечить ожидаемое поведение и функциональность пользовательского плагина виджета в рабочей области Qt Designer, можно унаследовать соответствующие классы расширений:

Класс QDesignerContainerExtension позволяет добавлять страницы в пользовательский многостраничный контейнер. Класс QDesignerTaskMenuExtension позволяет добавлять пользовательские пункты меню в контекстное меню Qt Designer. Класс QDesignerMemberSheetExtension позволяет управлять функциями членов виджета, которые отображаются при настройке подключений с помощью режима Qt Designer для редактирования сигналов и слотов. Наконец, класс QDesignerPropertySheetExtension позволяет управлять свойствами виджета, которые отображаются в редакторе свойств Qt Designer.

В Qt Designer расширения создаются только по мере необходимости. Поэтому при реализации расширений необходимо также унаследовать класс QExtensionFactory, т. е. создать класс, способный создавать экземпляры ваших расширений. Кроме того, необходимо зарегистрировать фабрику в менеджере расширений Qt Designer; менеджер расширений управляет созданием расширений по мере необходимости, и к нему можно получить доступ через QDesignerFormEditorInterface и QExtensionManager.

Для получения полного примера создания пользовательского плагина виджета с расширением, см. примеры Task Menu Extension или Container Extension.

Получение доступа к компонентам Qt Designer

Цель классов, упомянутых в этом разделе, — предоставить доступ к компонентам, менеджерам и рабочей области Qt Designer, и они не предназначены для прямого создания экземпляров.

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

Qt Designer также имеет объект, работающий в фоновом режиме; он содержит логику, которая интегрирует все компоненты Qt Designer в единое приложение. Вы можете получить доступ к этому объекту, используя QDesignerFormEditorInterface, чтобы получить интерфейсы к компонентам Qt Designer:

  • QDesignerActionEditorInterface
  • QDesignerObjectInspectorInterface
  • QDesignerPropertyEditorInterface
  • QDesignerWidgetBoxInterface

Кроме того, вы можете использовать QDesignerFormEditorInterface для получения интерфейсов к менеджеру расширений Qt Designer (QExtensionManager) и менеджеру окон формы (QDesignerFormWindowManagerInterface). Менеджер расширений контролирует создание расширений по мере необходимости, а менеджер окон формы контролирует появление окон формы в рабочей области Qt Designer.

После того, как у вас есть интерфейс к менеджеру окон формы Qt Designer (QDesignerFormWindowManagerInterface), вы также имеете доступ ко всем окнам форм, которые в настоящее время отображаются в рабочей области Qt Designer: класс QDesignerFormWindowInterface позволяет запрашивать и изменять окна форм, а также предоставляет интерфейс к курсорам окон форм. QDesignerFormWindowCursorInterface — это вспомогательный класс, позволяющий запрашивать и изменять выделение виджетов в данном окне формы, а также изменять свойства всех виджетов формы.

Создание пользовательских интерфейсов во время выполнения

Модуль QtDesigner содержит класс QFormBuilder, который предоставляет механизм для динамического создания пользовательских интерфейсов во время выполнения на основе файлов пользовательских интерфейсов, созданных с помощью Qt Designer. Этот класс обычно используется пользовательскими компонентами и приложениями, встраивающими Qt Designer. Приложения, которые требуют динамического создания пользовательских интерфейсов во время выполнения, используют класс QUiLoader в модуле QtUiTools.

Для получения полного примера использования QUiLoader, см. пример Calculator Builder.

См. также Руководство по Qt Designer и Инструменты Qt UI.

© The Qt Company Ltd
Licensed under the GNU Free Documentation License, Version 1.3.
https://doc.qt.io/archives/qt-5.6/qtdesigner-components.html

Spec-Zone.ru

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