Пишем плагин для VSQProject

Сборка минимум qt 5.5.1 (младшие не видят UI plugin)

https://AlValBel@bitbucket.org/AlValBel/vsq_pluging_template

Структура каталога

  • interfaces (содержит интерфейс(ы), которые будет реализовывать плагин, те же самые интерфейсы должны быть и у vsq)
  • plugs (место размещения плагина)

фрагмент файла настройки .pro (предполагается, что плагин будет визуальным)

QT +=core
QT +=widgets uiplugin
TARGET = plugVSQ_NAME
TEMPLATE = lib
CONFIG +=plugin

далее, пусть наш плагин реализует ифейс Component, тогда сам Component должен иметь следующее декларирование своего интерфейса (фрагмент Components.h):

  VsqAction* vsqActionInComponent(Component* aComp, VsqAction* aAction);                                                                                                                                                                                                                                                                                                                                                  
  Q_DECLARE_INTERFACE(Component,"ru.prom-auto.VSQ.Component")
  //                  **имя, уникальный идентификатор**
  #endif // COMPONENT_H    

сам плагин будет реализовывать интерфейс (фрагмент)

  class VSQPlugTest: public Component{
     Q_OBJECT
     Q_PLUGIN_METADATA(IID "org.promauto.vsq.VSQPlugTest")
     Q_INTERFACES(Component)
   //....

Собираем проект, полученный *.so или *.dll помещаем в дирректорию plugins внутри папки с исполняемым файлом VSQ

При попытке собрать проект с несколькими плагинами реализующими один и тот же интерфейс возникнет ошибка

Один проект, один плагин

doc/vsq/quick/plugin.txt · Последние изменения: 2018/01/23 13:22 — alexeyb
Driven by DokuWiki Recent changes RSS feed Valid CSS Valid XHTML 1.0