![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Qt插件开发
文章平均质量分 83
插件开发记录
贝勒里恩
用生命写代码,用灵魂做界面!
展开
-
Qt插件开发总结1--插件的创建及使用
文章目录一、插件二、插件和动态库的区别三、Qt中的插件四、Qt插件开发--程序结构五、Qt插件开发--主程序部分开发流程六、Qt插件开发--插件程序部分开发流程七、实例编写7.1、主程序部分7.2、插件程序部分八、插件使用一、插件插件是一种(遵循一定规范的应用程序接口编写出来的)程序,定位于开发实现应用软件平台不具备的功能的程序。插件必须依赖于应用程序才能发挥自身功能,仅靠插件是无法正常运行的;相反地,应用程序并不需要依赖插件就可以运行,这样一来,插件就可以加载到应用程序上并且动态更新而不会对应用诚信原创 2022-01-10 16:57:33 · 9444 阅读 · 3 评论 -
Qt插件开发总结2--插件管理器
一、前言插件开发总结–插件的创建及使用一文中,展示了在Qt中如何使用Qt Low-API插件实例。但是这却满足不了大型应用程序的实际场景,没有扩展性。而插件间的通信、加载卸载(释放内存)、插件元数据、插件生命周期、插件依赖等问题,便是我们要做的。在QT内部,高级 API 有 PluginManager 负责做这些事,但是低级 API 就需要自己写插件管理器来帮助我们解决这些问题。想象一台 windows 系统的电脑,包含了主机、显示屏、键鼠等部件。假如我们拔掉键盘,电脑不会出错,只是缺失了键盘的功能,因原创 2022-02-17 17:20:40 · 4363 阅读 · 19 评论 -
Qt插件开发总结3--插件间通信
文章目录一、通信方案二、实现过程三、插件通信使用一、通信方案因为插件管理器和每一个插件都有关联(它负责插件的加载、卸载等等),那就让插件管理器来转发消息。二、实现过程1、在接口中增加消息结构体struct PluginMetaData{ QString from; //消息来源 QString dest; //消息去向 QString msg; //消息 QObject* object = nullptr; QJsonObject in原创 2022-02-17 17:42:56 · 4426 阅读 · 10 评论 -
Qt插件开发总结4--主界面添加插件菜单
怎么创建插件;Qt插件开发总结–插件的创建及使用怎么管理插件;Qt插件开发总结–插件管理器怎么实现插件间通信;Qt插件开发总结–插件间通信插件加载成功后,自动出现在主界面中;插件卸载成功后,自动从主界面消退;这篇博文的目的加载插件,插件中的==菜单项(QAction)==自动添加到主界面,主界面点击菜单项,调用插件内的槽函数;每个插件都有自己的插件信息,例如{"author""这是一个插件A","dependencies"...原创 2022-07-18 15:57:46 · 3060 阅读 · 4 评论 -
Qt插件开发总结5--主界面嵌入插件UI
Qt插件开发总结–主界面添加插件菜单,已经介绍了如何将插件Action注入到主框架MainWindows中。其实,插件式程序的整体流程如下图所示:我们再来回顾一下Qt插件开发总结–主界面添加插件菜单主框架加载自身的配置(初始化);插件元数据中新增action键值对;插件类中存储action名称列表和action槽函数列表;主框架扫描插件、加载插件、读取插件元数据;原创 2023-03-01 23:31:36 · 6180 阅读 · 4 评论 -
CTK Plugin Framework插件框架学习1--Qt编译CTK
【代码】Qt编译CTK。原创 2023-01-04 14:46:07 · 5087 阅读 · 4 评论 -
CTK Plugin Framework插件框架学习2--创建插件
CTK保姆级编译教程:https://blog.csdn.net/Mr_robot_strange/article/details/128547331?spm=1001.2014.3001.5501Qt 新建【子目录项目】,项目命名为为CTK_PluginFramework然后继续新建子项目【Application】,作为主项目,项目结构如下图所示:1、将CTK编译生成的CTK文件夹复制到工程目录下,例如:2、将源码文件夹下的 文件夹复制到刚刚复制的CTK文件夹下,例如:3、在CTK文件夹下新建,并添加如原创 2023-01-10 13:10:57 · 2964 阅读 · 1 评论 -
CTK Plugin Framework插件框架学习3--插件通信【注册接口调用】
通过Qt基于CTK Plugin Framework搭建插件框架–创建插件一文,我们知道了CTK创建插件的基本流程,但是在这篇文章中,我们只是创建了一个空插件,一个只有激活类的插件,没有任何功能。一个CTK标准插件应该包含有:接口类、接口实现类、激活类;接口类就只做接口声明;实现类就只实现接口;激活类就负责将服务整合到ctk框架中;原创 2023-01-10 17:01:04 · 2115 阅读 · 0 评论 -
CTK Plugin Framework插件框架学习4--插件通信【事件监听】
接收者注册监听事件(接收方想监听xxx信息)发送者发送事件(发送方发送xxx信息)接收者接收到事件并响应(接收方收到xxx事件后的动作)相比调用插件接口监听事件插件间依赖关系更弱,不用指定事件的接收方和发送方是谁在编译输出的CTK文件夹中可以找到加载EventAdmin动态库main.cpp中新增如下代码。原创 2023-01-11 14:22:05 · 2334 阅读 · 3 评论 -
CTK Plugin Framework插件框架学习5--CTK服务工厂
注册服务的时候能够用服务工厂来注册;访问服务中的plugin参数是执行的插件,从而工厂根据执行的不同插件名称返回不同的服务实现。原创 2023-01-11 15:54:53 · 1158 阅读 · 1 评论 -
CTK Plugin Framework插件框架学习6--事件监听
框架事件插件事件服务事件但是这些事件只有在变化时才能监听到,如果已经变化过后,进入一个稳定的状态,这时才去监听,那么是无法监听到的。原创 2023-01-11 16:48:08 · 674 阅读 · 0 评论 -
CTK Plugin Framework插件框架学习7--服务追踪
服务追踪:如果想在B插件里使用A服务,可以专门写一个类继承ctkServiceTracker,在这个类里完成对A服务的底层操作,然后在B插件里通过这个类提供的接口来使用回收A服务。原创 2023-01-12 17:54:38 · 966 阅读 · 0 评论