QCad源码分析
tianyapai
困局
展开
-
QCad源码分析 第一章
鉴于介绍Qcad相关的文章很少,决定写此博客,一来便于日后查找,二来要有分享精神。本文章基于Qcad3 .21.3.4的开源版本进行分析,分过程中难免有疏漏,如果有新的发现会及时更改,不足之处望高手指正,十分感谢。 QCad是一款2维的cad软件,基于Qt类库开发,逻辑处理方面夹杂着QtScript,所以首先要熟悉javascript,js相关文章不在赘述,其次QtScript的使用...原创 2018-12-03 10:12:57 · 5201 阅读 · 0 评论 -
QCad源码分析 第二章
QCad中通过c++代码与js代码结合的方式开发,C++用于功能的开发,js用于逻辑的处理,启用通过RScriptHandler类将c++类导出为脚本可调用的接口。脚本相关的类的关系如下图: RScriptHandlerRegistry:脚本注册类,管理的是脚本的文件名与脚本创建函数的映射表QMap<QString, RScriptHan...原创 2018-12-03 09:56:59 · 2650 阅读 · 1 评论 -
QCad源码分析 第三章
QCad处理脚本的基本流程如下://将脚本的工厂函数和脚本类型注册到系统当中,【jsfactory--js, pytonfactory--python】 RScriptHandlerRegistry::registerScriptHandler(RScriptHandlerEcma::factory, RScriptHandlerEcma::getS...原创 2018-12-03 11:50:54 · 2196 阅读 · 2 评论 -
QCad源码分析 第五章
讲解一下Add-ons,即RAction的执行过程前提条件是MainWindow已将所有的界面Add-ons加载完成,QCad中的Action都会绑定一个脚本,例如“Draw”菜单下的“Line”下的“Line2P”菜单项的执行过程。首先Line2P在初始化时会绑定脚本,代码如下//---------------------------Line2PInit.js文件---------...原创 2018-12-13 15:06:16 · 1734 阅读 · 0 评论 -
QCad源码分析 第六章
讲解文档视图场景的创建过程:参考NewFile.js文件NewFile.createMdiChild = function (fileName, nameFilter, uiFile, graphicsSceneClass) { //判断文件是否是打开 var isOpen = !isNull(fileName); //文件过滤 if (isNull...原创 2018-12-14 16:52:52 · 1602 阅读 · 0 评论 -
QCad源码分析 第四章
分析一下线实体的添加操作,两点划线,下面是Line2P.js中的部分代码:function Line2P(guiAction) { Line.call(this, guiAction); //点的列表 // list of points drawn: this.pointList = []; // index of point that was drawn...原创 2018-12-20 17:56:36 · 1676 阅读 · 0 评论