QCAD v3.23.0.3源码分析(一)准备工作,去商业插件

简介: QCAD v3.23.0.3源码分析(一)准备工作,去商业插件

一、准备工作


0、学习软件都有什么功能,实操感受一下,请下载商业版exe:https://www.qcad.org/en/


官网只提供商业试用版exe。如果你觉得试用的功能好用,就购买许可,将试用功能变成正式功能。如果你不想使用这些额外的功能,可以手工删除 plugins目录下的试用dll。软件就变成了免费社区版。


删除安装路径\QCAD\plugins\下面的商业dll文件:


qcaddwg.dll


qcadpolygon.dll


qcadproscripts.dll


qcadspatialindexpro.dll


qcadtriangulation.dll


仅仅保留2个开源免费的插件文件即可:


qcaddxf.dll


qcadscripts.dll


1、QCAD所有的UI界面都是使用js实现的,入口是:\qcad-3.23.0.3\scripts\autostart.js


2、QCAD的软件配置文件在:C:\Users\<用户名>\AppData\Roaming\QCAD\QCAD3.ini


3、js的IDE推荐JetBrains WebStorm


4、QDebug()等命令在Visual Studio中的打印输出:因为VS默认使用的是窗口,如果想像平时运行C++程序一样在控制台看到输出信息,则需要改用控制台。


步骤:VS-IDE>项目>属性>配置属性>链接器>系统,编辑子系统,把"窗口"改为“控制台”


5、js的断点调试


步骤:VS-IDE>项目>属性>配置属性>调试->命令参数,"-enable-script-debugger"


//先初始化

QScriptEngine engine;

QScriptEngineDebugger debugger;

debugger.attachTo(&engine);

//然后在evaluate函数之前加入debugger->action(),会自动弹出可视化的调试窗口

debugger->action(QScriptEngineDebugger::InterruptAction)->trigger();

engine->evaluate(contents, fileName);

6、脚本


\qcad-3.23.0.3\src\scripts\scripts.qrc和scripts_release.qrc是Qt资源文件,管理脚本文件,如新增和删除等


\qcad-3.23.0.3\scripts\是脚本软件




---


相关学习资料:


https://www.runoob.com/js/js-tutorial.html JavaScript教程


https://doc.qt.io/qt-5.12/qtscript-index.html Qt Script


https://doc.qt.io/qt-5.12/qscriptengine.html  QScriptEngine


https://doc.qt.io/qt-5.12/qscriptenginedebugger.html Qt Script断点调试


ECMAScript


https://blog.csdn.net/tianyapai/article/category/8548350 QCad源码分析


https://blog.csdn.net/tianyapai/article/category/8500765 Qt Script翻译


https://blog.csdn.net/WindFlowInTheSky/article/details/80674206 使用QCAD进行二次开发之主要框架


https://github.com/zippy84/lc-qcad



相关文章
|
8月前
|
新零售 供应链 数据挖掘
推三返一系统开发|成熟案例|源码部署
“新零售”的商业生态构建将涵盖网上页面
|
8月前
|
存储 Java 数据管理
探秘JDK 10:崭新特性悉数解析
探秘JDK 10:崭新特性悉数解析
101 0
|
3月前
|
Java 开发工具 Android开发
搭建大型源码阅读环境——使用 OpenGrok
RTFSC 是程序员成长的必修课,营造舒适的环境至关重要。本文介绍了阅读大型源码(如 AOSP)的工具选择,重点推荐了免费开源的 OpenGrok。OpenGrok 提供快速搜索、版本历史查看、语法高亮等功能,适用于特大型项目。文章还详细讲解了 OpenGrok 的安装和配置步骤,帮助读者高效阅读源码。
432 6
|
5月前
|
数据库 开发者
从EF6无缝切换到Entity Framework Core:一份详尽无遗的开发者实战攻略,带你领略数据库操作的全新境界,让代码优雅转身,性能与可维护性双丰收的秘密武器
【8月更文挑战第31天】本文通过详细的代码示例,介绍了如何将基于 EF6 的应用程序平滑迁移到 EF Core。从创建初始 EF6 项目并定义数据库上下文开始,逐步演示了如何使用 EF6 进行数据操作。随后,文章详细讲解了迁移到 EF Core 的步骤,包括配置 EF Core 数据库上下文、定义领域模型及数据操作等。通过具体示例,展示了 EF Core 的强大功能,帮助开发者构建高效且可扩展的数据访问层。
63 0
|
8月前
|
存储 缓存 监控
【分布式技术专题】「缓存解决方案」一文带领你好好认识一下企业级别的缓存技术解决方案的运作原理和开发实战(数据更新场景策略和方案分析)
【分布式技术专题】「缓存解决方案」一文带领你好好认识一下企业级别的缓存技术解决方案的运作原理和开发实战(数据更新场景策略和方案分析)
100 0
|
存储 Kubernetes 程序员
k8s学习之路【04.配置应用程序】
k8s学习之路【04.配置应用程序】
|
开发者
开发者想要的技术社区是哪样?
作为一名技术开发人员,除了在日常开发之余,逛的最多的就是与技术领域相关的技术社区了,随着近几年国内互联网技术圈的飞速发展,各种技术社区如春笋般的诞生,无论是一线大厂对应的技术社区还是专注技术领域的领域技术社区,让国内的开发者在遇到实际开发中产品选型有了更多的选择,这些技术社区也帮助开发者解决日常开发中遇到的各种技术难题,可以说技术社区对开发者而言是非常重要的技术平台载体。
155 1
|
区块链
佛萨奇源码版丨佛萨奇2.0Metaforce系统开发功能方案/案例详细/方案项目/源码程序
  一条完整的区块链,是由众多分布式账本集合而成的一种数据链。那么随着其中某个账本的记录完成,区块也就随之生成。区块的生成过程也就可以理解为是交易的一个记账过程。但光有区块还是不够的,还得需要“链”将所有已有区块都连起来。那么所谓的“链”,就是时间戳技术以及某种智能合约。
|
缓存 JSON 前端开发
腾讯开源的 hel 提供了加载远程模块的能力,谈谈它的实现原理
腾讯开源的 hel 提供了加载远程模块的能力,谈谈它的实现原理
189 0
|
开发框架 Ubuntu JavaScript
浅谈USDToch(优多趣)模式系统开发源码搭建(成熟技术)
浅谈USDToch(优多趣)模式系统开发源码搭建(成熟技术)
329 0