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

        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文件,在项目管理器可以看到自动添加了项目,相应包含了相关的源文件资源文件等;

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

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
### 回答1: QCAD的源码编译过程没有生成qcad.exe的原因可能有以下几种: 1. 编译过程出现了错误或警告:在编译源码的过程,可能会出现一些错误或警告信息,这些问题可能会导致生成的可执行文件不存在。需要检查编译过程的日志信息,查找并解决出现的错误。 2. 编译配置问题:在进行源码编译时,可能需要进行一些配置操作,例如指定生成的可执行文件的名称、路径等。如果配置不正确,可能导致生成的可执行文件不存在。需要仔细检查编译配置,确保生成的可执行文件的相关设置正确无误。 3. 缺少依赖项:在编译源码时,可能需要依赖一些第三方库或工具。如果缺少了这些依赖项,可能会导致生成的可执行文件不存在。需要查看编译过程的依赖项信息,确保所有依赖项都已正确安装并配置。 4. 操作系统兼容性问题:有些情况下,源码可能只能在特定的操作系统上编译成功。如果您的操作系统与源码不兼容,可能无法生成可执行文件。需要确认您的操作系统是否符合源码的兼容要求,如果不符合,可能需要考虑更换操作系统或寻找适应您当前环境的其他解决方案。 综上所述,QCAD源码编译没有生成qcad.exe可能是由于编译过程的错误、配置问题、缺少依赖项或操作系统兼容性等原因所致。您可以详细检查编译过程的日志信息、编译配置、依赖项安装以及操作系统兼容性,以解决生成qcad.exe的问题。 ### 回答2: QCAD是一个开源的计算机辅助设计(CAD)软件,使用C++语言编写。为了编译QCAD的源码并生成可执行文件(qcad.exe),您需要按照以下步骤进行操作: 1. 首先,确保您的计算机已经安装了适当的开发环境,如GCC编译器、CMake和Qt开发工具包。 2. 下载QCAD的源码压缩包,可以从QCAD的官方网站或者GitHub仓库获取。 3. 解压源码压缩包到您选择的目录。 4. 打开命令行终端,并导航到源码目录。 5. 创建一个新的文件夹,用于存储生成的可执行文件。 6. 在命令行输入以下命令来配置编译过程: ```shell cmake -G "Unix Makefiles" -DCMAKE_INSTALL_PREFIX=/path/to/qcad_executable_directory . ``` 这将使用Unix Makefiles生成器配置构建过程,并指定编译后的文件存储路径。 7. 一旦配置完成,使用以下命令进行编译: ```shell make ``` 这将开始编译源码,并生成可执行文件。编译时间可能会有所不同,具体取决于您的计算机性能和源码规模。 8. 编译完成后,在指定的保存路径下应该会生成一个名为qcad.exe的可执行文件。 如果在编译过程出现错误或警告,请检查您的环境设置和依赖项,可能需要解决一些缺失的库或依赖关系。同时,确保按照官方文档提供的编译指南进行操作。 ### 回答3: QCAD的源码编译生成的可执行文件qcad.exe可能没有成功生成的原因有以下几点: 1. 编译过程出现错误:在编译源码的过程,可能会因为各种原因导致编译错误,比如缺少依赖库、编译选项设置错误等。这些错误会断编译过程,导致最终的可执行文件没有生成。需要仔细检查编译日志或错误信息,解决相关编译错误。 2. 缺少构建环境:在编译QCAD源码之前,需要确定是否已经安装了编译所需的构建环境和工具链。这包括编译器、构建系统(如CMake)、相关依赖库等。如果缺少必要的构建环境,编译过程将无法进行或无法正确完成,因此不会生成可执行文件。 3. 编译选项未正确设置:编译过程需要设置相应的编译选项,以配置编译器、链接选项和依赖库等。如果编译选项设置不正确,可能导致编译过程的错误或生成的可执行文件出错。需要确认编译选项的设置是否正确。 4. 缺少构建目标:在进行源码编译时,需要指定正确的编译目标。如果没有正确指定目标,编译系统将无法找到生成可执行文件的相关源码文件,并最终没有生成qcad.exe。 针对这些可能的原因,我们需要逐个排查和解决。通过仔细检查编译日志、确认构建环境和工具链的安装情况、修正编译选项以及检查是否正确指定了构建目标,可以解决未生成qcad.exe的问题。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值