QCAD二次开发:项目中添加自定义插件(c++&Ecmascript实现)

本文介绍了如何为QCAD创建和配置插件,包括.pro工程文件、源码文件.cpp、头文件.h和资源管理文件.qrc的详细设置。通过这些步骤,你可以使用C或C++扩展QCAD的功能,并实现JavaScript扩展。调试完成后,插件信息将显示在QCAD的'关于'中,表明插件已成功添加。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

        QCAD插件可以用来扩展QCAD的功能,用C或C++进行功能实现。

        所有的QCAD插件必须直接或间接地从QObject和抽象基类RPluginInterface派生。

一、项目文件编辑

        需要工程管理文件.pro ,源码文件.cpp,头文件.h和资源管理文件.qrc

1、工程文件配置.pro

# 项目加入 plugin 模块
CONFIG      += plugin
# 表示生成的目标可执行文件的名称,此处为qcadexample.lib
TARGET      = example
# 指向QCAD源代码安装的shared.pri文件;
include(../../../shared.pri)
# 选择lib模板
TEMPLATE    = lib
# 头文件和源码文件
HEADERS     = RExamplePlugin.h
SOURCES     = RExamplePlugin.cpp
# 指向可执行程序存放的的plugins文件夹,这样插件
# 就可以在正确的位置编译,QCAD也可以从那里加载它;
DESTDIR     = $$PWD/../../../plugins
# 库文件 ,用法LIBS += -L路径 -l文件 -l文件
LIBS += -lqcadcore -lqcadgui -lqcadecmaapi
# 资源文件
RESOURCES   = scripts.qrc

2、源码文件 .cpp

#include "RExamplePlugin.h"

RPluginInfo RExamplePlugin::getPluginInfo() {
    RPluginInfo ret;
    ret.set("Version", "1.0");
    ret.set("ID", "EXAMPLE");
    ret.set("Name", "Example Plugin");
    ret.set("License", "GPLv3");
    ret.set("URL", "http://qcad.org");
    return ret;
}

#if QT_VERSION < 0x050000
QT_BEGIN_NAMESPACE
Q_EXPORT_PLUGIN2(example, RExamplePlugin)
QT_END_NAMESPACE
#endif

3、头文件 .h

#include <QObject>
#include <QScriptEngine>

#include "RPluginInterface.h"

class RExamplePlugin : public QObject, public RPluginInterface
{
    Q_OBJECT
    Q_INTERFACES(RPluginInterface)
#if QT_VERSION >= 0x050000
    Q_PLUGIN_METADATA(IID "org.qcad.exampleplugin")
#endif

public:
    // 初始化
    virtual bool init() { return true; }
    virtual void uninit(bool) {}
    virtual void postInit(InitStatus) {}
    // 初始化js扩展
    virtual void initScriptExtensions(QScriptEngine&) {}
    // 插件信息
    virtual RPluginInfo getPluginInfo();
    // 插件授权检查
    virtual bool checkLicense() { return true; }
    // 插件国际化支持初始化
    virtual void initTranslations(){}
};

4、资源管理文件 .qrc

<!DOCTYPE RCC><RCC version="1.0">
  <qresource>
    <file alias="scripts/MyTool/MyTool.js">scripts/MyTool/MyTool.js</file>
  </qresource>
</RCC>

二、在解决方案中添加项目

       扩展-Qt VS Tools-打开Qt项目文件-打开pro文件,在项目管理器可以看到自动添加了项目,相应包含了相关的源文件资源文件等;

        调试,帮助-关于,可以看到插件部分生成了相应信息,成功添加; 

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值