嗨咯呀,最近作为一名初级QT开发工程师进入到了一家新公司,刚进公司肯定是先熟悉公司代码以及框架啦,由于此前未曾有接触过框架,所以刚开始的时候看起框架来还是很晕乎乎的,话不多说,直接记录新公司使用的开发框架。
---CTK插件框架,由名可知,此框架的核心便是插件,使用此框架进行开发的核心就是将每个模块都划分成不同的插件,在需要进行使用的时候将其加载进来并使用,这样能使系统开发更加模块化、便于管理,也完美的匹配软件开发中高聚集低耦合的要求。
使用过QT的都知道,一般情况下,类与类、类与界面之间的数据交换、事件触发我们都是使用信号与槽的,但是在CTK框架中是使用信号与槽publishSignal(向ctk框架注册信号) + subscribeSlot(通过主题来订阅已在ctk框架中注册过的信号)、 类-sendevent + handleevent(此函数的类需要继承ctkEventHandler)。在通信过程中使用ctkDictionary传输数据
第一步:插件所使用类的创建
插件的创建一般是需要用到两个类的:1、激活类 2、插件类
1、在激活类中实现start和stop两个函数,在start函数中定义唯一的插件类对象并使用其相关方法和变量等
2、在激活类中进行发布/订阅信号
激活类:
插件类:
第二步:插件属性文件创建
首先添加一个资源文件
将资源文件的前缀设置为:导出的文件名
在HelloCTK文件夹中新建MANIFEST.MF
文件并导入到资源文件夹中:
第三步:插件的创建:
如果有需要的话可以重定义一下插件生成后的路径以及名称,安装插件的时候会用到
执行qmake之后进行构建就可以在刚刚指定的路径下生成指定名称的插件了哦。
这样就完成插件的创建了哦,在DESTDIR的路径下可以找到相关插件的文件夹
第四步:插件的导入与开启
1、初始化并开启ctk框架
2、安装插件
3、开启插件
第五步:之前说过在ctk框架中插件之间的通信是有两种方式,这里就只给大家列举最常用的一种:信号与槽
信号发布与订阅:使用ctkEventAdmin进行处理信号与槽的订阅关系
publishSignal(信号发出对象,信号,信号主题,信号发出方式)
subscribeSlot(接受对象,槽函数,订阅的信号的主题,槽函数处理方式);信号与槽都是多对多的关系
信号数据:
槽函数接受信号传过来的数据并进行相关处理:
看到了几篇还不错的文章CTK文章分享一下:
(40条消息) CTK Plugin Framework插件框架学习4--插件通信【事件监听】_ctk框架_贝勒里恩的博客-CSDN博客(40条消息) CTK Plugin Framework插件框架学习2--创建插件_ctk插件_贝勒里恩的博客-CSDN博客