平台:win10 + qtcreator5.9.3
参考资料:
① Qt自带的example,echoplugin;
② 百度经验“怎样创建Qt应用程序插件”(https://jingyan.baidu.com/article/8cdccae956810f315413cdfc.html)。
项目工程下载地址:https://github.com/cr19941016/qt_addplugin
创建步骤:
① 方便起见,plugin和调用plugin的系统放在一个工程里,作为两个子工程。
创建.pro工程如下:
TEMPLATE = subdirs
SUBDIRS = addwindow \
plugin \
意思是包含两个子文件夹“addwindow”和“plugin”。
② plugin文件夹直接复制echoplugin(D:\Qt\Qt5.9.3\Examples\Qt-5.9.3\widgets\tools\echoplugin)里面的设置,只有函数名等等做了点修改。
③ addwindow完全可以自己新建。
仿照echoplugin,在addwindow里面设置插件接口类;
做个界面。
插件和使用插件的软件的联系体现在以下几处:
(1)插件接口类
(2)插件id
// 在插件的头文件中
#include "addinterface.h"
class AddPlugin : public QObject, AddInterface
{
Q_OBJECT
Q_PLUGIN_METADATA(IID "Qt.test.EchoInterface" FILE "echoplugin.json")
Q_INTERFACES(AddInterface)
public:
int add(int a, int b) override;
};
// 在插件的pro文件中
#! [0]
TEMPLATE = lib
CONFIG += plugin
QT += widgets
HEADERS = addplugin.h
SOURCES = addplugin.cpp
TARGET = $$qtLibraryTarget(addplugin)
DESTDIR = ../plugins
INCLUDEPATH += ../addwindow # 添加接口类头文件的路径
#! [0]
EXAMPLE_FILES = echoplugin.json
# install
target.path = $${OBJECTS_DIR}/plugins # 生成的插件存放的路径
INSTALLS += target
CONFIG += install_ok # Do not cargo-cult this!