.. _doc_dev_qtlib: QT插件库开发 ============ 目前用于底盘、上桩等不同业务逻辑的带界面的插件是使用QT插件的形式进行加载的, 因此此部分的插件的开发亦遵循QT插件的一般开发方式 ( `How to Create Qt Plugins `_ ). 唯一额外的要求是, 需要实现规定的几个接口, 以便插件能够被正确加载和启动. 需要实现的接口定义于 **model/CAModelInterface.h** h文件中, 其内容如下: :: class CAModelInterface { public: virtual ~CAModelInterface() = default; // 传递主qml文件路径, 纯虚函数必须实现 virtual QString getViewResource() = 0; // 返回前端对象 virtual QObject* getViewObject() = 0; // 启动Qt插件 virtual void start(Cagy::OSP::BundleContext::Ptr pContext, EventAdmin::EventAdminService::Ptr pEAService) = 0; // 停止Qt插件 virtual void stop(Cagy::OSP::BundleContext::Ptr pContext, EventAdmin::EventAdminService::Ptr pEAService) = 0; }; 其中, 启动和停止函数的参数是Qt插件的上下文和事件总线服务, 可供插件内部进行OSP相关服务以及EventAdmin相关服务的调用. 具体方式可参考 :ref:`QT插件示例 ` .