关于QGC地面站其它文章请点击这里: QGC地面站
● UML 核心类图:(点击图片放大看效果更好)
![在这里插入图片描述](https://img-blog.csdnimg.cn/cedf568fabb34a3d812e153f30152e1d.png#pic_center)
● 核心系统分析图:(点击图片放大看效果更好)
![在这里插入图片描述](https://img-blog.csdnimg.cn/366d3a018c514837bab36e194d956cbf.png#pic_center)
● 工程结构:
整个 QGC 工程由唯一的单例 _app 进行管理,它这个类只提供了唯一的实例,另外提供了一个访问它的全局函数
QGCApplication* qgcApp(void)
{
return QGCApplication::_app;
}
QGCTool 有两个 protected修饰的变量 _app 和 _toolbox ,其派生类可以被调用,每一个派生类中的_app 和 _toolbox都是 QGCApplication 中传入的,且是唯一的(可以仔细看传入过程)
class QGCTool : public QObject {
Q_OBJECT
...
protected:
QGCApplication* _app;
QGCToolbox* _toolbox;
};
![在这里插入图片描述](https://img-blog.csdnimg.cn/0ed8e0625eb54ee9b7ad0523b8562f8a.png)
● 在 QML 和 C++ 的交互中:
![在这里插入图片描述](https://img-blog.csdnimg.cn/f1832ccccf1d4cbcabfced9b83e84b52.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA54Gr5bGx5LiK55qE5LyB6bmF,size_20,color_FFFFFF,t_70,g_se,x_16)
● QGCToolbox.h 中类的声明
![在这里插入图片描述](https://img-blog.csdnimg.cn/70384b745c8043d6a310a42d564d86e6.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA54Gr5bGx5LiK55qE5LyB6bmF,size_12,color_FFFFFF,t_70,g_se,x_16)
最主要是防止互相包含
在class声明之后、定义之前的位置可以对class进行引用、定义类指针、定义类的函数指针、定义类的成员指针
不能有任何涉及类中成员对象的行为。防止互相包含,所以 不能是
#include MultiVehicleManager
而是
class MultiVehicleManager;
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)