Qt 开发架构总结

最近在重构一个Qt项目,做的功能大致就是QGIS 二次开发,需要集成进来一下QGIS没有的功能,由于前期没有系统规划,导致目前项目比较乱,所以就想着从功能和架构上拆拆,重新组织下,一下是技术大致思路
(1) 通过反射动态创建窗口
(2) 通过单利来获取已经创建的窗口
(3) 通过xml文件来实现主框架动态加载窗口
(4) 通过创建业务处理类,实现窗口和业务的隔离
(5) 通过样式表和xml 文件来动态创建窗口
其实对于项目可以从业务上拆分与6大类
(1) 主框架通过xml文件加载Menu,同时通过xml菜单来的slotname 来实现槽函数调用,或者槽函数通过xml里面的slotname 来通过反射实现动态创建窗口
(2) 公共模块实现视图窗口的管理,其实就是单利里面通过map管理创建的窗口,实现在不同窗口里面不通过传参来调用其他窗口的事件或者成员
(3) GIS 视图窗口封装,包括对与整个视图窗口的所有操作封装(maptools)
(4) 模态框 封装,提供model Dock形式的模态框,同时为一些相同业务提供莫态框基类,参数和模态框名称通过xml配置,同时支持内嵌Frame窗口块,提供model动态创建
(5)封装所有gdal 有关的业务模块,提供API调用能力,为模态框的确定事件提供基础能力
(6)封装模态框和API之间的转化层,提供模态框和API和视图显示之间的直接能力
其上6快全为动态库封装
需要的能力有
(1)xml文件解析和设计
(2)C++ 函数指针,bind,lamdal 表达式能力
(3)QT 通过反射动态创建类或窗口
(4)设计模式单利模式和工厂模式
(5)Qt CSS 语法能力
(6) C++ 面向对象的继承与派生
整体参考spring beanFactory 来设计的,通过xml实现Bean的创建,在xml的能力之上封装了css,槽函数,参数的动态创建

猜你喜欢

转载自blog.csdn.net/u012453032/article/details/84063361
今日推荐