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相关服务的调用. 具体方式可参考 QT插件示例 .