Spec-Zone.ru › Qt 5.9

Создание и использование компонентов для 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.

Для получения полного примера создания пользовательского плагина виджета с расширением, см. примеры Расширения контекстного меню или Расширения контейнера.

Получение доступа к компонентам 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/qt-5.9/qtdesigner-components.html

Spec-Zone.ru

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