Spec-Zone.ru › Qt 5.11

<QtPlugin> - Определение плагинов

Заголовочный файл <QtPlugin> определяет макросы для определения плагинов. Подробнее...

Макросы

Q_DECLARE_INTERFACE(ClassName, Identifier)
Q_IMPORT_PLUGIN(PluginName)
Q_PLUGIN_METADATA( ...)

См. также Как создать плагины Qt.

Документация по макросам

Q_DECLARE_INTERFACE(ClassName, Identifier)

Этот макрос связывает заданный Identifier (строковую литерал) с классом интерфейса, называемым ClassName. Identifier должен быть уникальным. Например:

#define BrushInterface_iid "org.qt-project.Qt.Examples.PlugAndPaint.BrushInterface/1.0"

Q_DECLARE_INTERFACE(BrushInterface, BrushInterface_iid)

Этот макрос обычно используется сразу после определения класса ClassName в заголовочном файле. Подробности см. в примере Plug & Paint.

Если вы хотите использовать Q_DECLARE_INTERFACE с классами интерфейсов, объявленными в пространстве имён, убедитесь, что Q_DECLARE_INTERFACE не находится внутри пространства имён. Например:

namespace Foo
{
    struct MyInterface { ... };
}

Q_DECLARE_INTERFACE(Foo::MyInterface, "org.examples.MyInterface")

См. также Q_INTERFACES() и Как создать плагины Qt.

Q_IMPORT_PLUGIN(PluginName)

Этот макрос импортирует плагин с именем PluginName, которое соответствует имени класса, объявляющего метаданные плагина с помощью Q_PLUGIN_METADATA().

Вставка этого макроса в исходный код вашего приложения позволит вам использовать статический плагин.

Пример:

Q_IMPORT_PLUGIN(qjpeg)

Статические плагины также должны включаться компоновщиком при построении вашего приложения. Для предопределённых плагинов Qt вы можете использовать QTPLUGIN для добавления необходимых плагинов в ваш сборку. Например:

TEMPLATE      = app
QTPLUGIN     += qjpeg qgif    # image formats

См. также Статические плагины, Как создать плагины Qt и Начало работы с qmake.

Q_PLUGIN_METADATA( ...)

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

Макрос должен объявить IID реализованного через объект интерфейса и сослаться на файл, содержащий метаданные плагина.

В исходном коде плагина Qt должен быть ровно один экземпляр этого макроса.

Пример:

class MyInstance : public QObject
{
    Q_PLUGIN_METADATA(IID "org.qt-project.Qt.QDummyPlugin" FILE "mymetadata.json")
};

Подробности см. в примере Plug & Paint.

Обратите внимание, что класс, в котором появляется этот макрос, должен быть создаваемым по умолчанию.

FILE является необязательным и указывает на json-файл.

Файл json должен находиться в одном из каталогов включения, указанных системой сборки. moc завершает работу с ошибкой, если не может найти указанный файл.

Эта функция была добавлена в Qt 5.0.

См. также Q_DECLARE_INTERFACE() и Как создать плагины Qt.

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

Spec-Zone.ru

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