libreCAD源码阅读笔记2
1. 前言
继续学习QC_MDIWindow类、QG_ActionHandler类相关代码
2. QC_MDIWindow类
QC_MDIWindow类继承QT QMdiSubWindow类,与QMdiArea公共构成多文档窗口结构,在QC_MDIWindow构造函数中,使用setWidget(graphicView)(QC_MDIWindow.cpp 81行)将QG_GrahpicView设置为QC_MDIWindow窗口主界面;同时,QC_MDIWindow构造函数接受一个RS_Document参数,传递给自身document变量,并将该变量传给QG_GrahpicView,方便数据有所改变时候视图同时更新。


3. QG_ActionHandler类

QG_ActionHandler可以称为一个事件生产类,主窗口的每个事件(QAction)发射的QT信号,将调用具体的槽函数(signal/slot),然后通过setCurrentAction()函数生成一个具体事件,并返回其父类接口RS_ActionInterface,在libreCAD源码src/Actions里面的

本文是libreCAD源码阅读笔记的第二篇,主要探讨了QC_MDIWindow类,它是QMdiSubWindow的子类,用于构建多文档窗口结构。在构造函数中,QC_MDIWindow将QG_GraphicView设为主界面,并与RS_Document进行交互以实现数据同步。此外,QG_ActionHandler作为事件处理类,它产生的事件通过RS_ActionInterface传递给RS_GraphicView,使得视图能够响应绘图操作。文章结尾指出RS_GraphicView、RS_Document和RS_ActionInterface之间的紧密关系有待进一步研究。
最低0.47元/天 解锁文章
2306

被折叠的 条评论
为什么被折叠?



