当前位置: 首页 > news >正文

Qt插件Plugins

Qt插件开发

Qt提供了两种API:
一种是高阶 API,用于 Qt 本身功能扩展,如自定义数据库驱动,图像格式,文本编码,自定义样式等;
一种是低阶 API,用于 Qt 应用程序扩展。本篇主要介绍 低阶API

Qt帮助文档找到"插件引导"

搜索 guides, 找到 How to Create Qt Plugins,往下滑,找到低阶API: The Low-Level API: Extending Qt Applications
Qt帮助文档找到插件引导

主程序调用插件流程:1. 定义一个接口集(只有纯虚函数的类)用宏Q_DECLARE_INTERFACE()将该接口告诉 Qt 元对象系统。2. 应用程序中用QPluginLoader来加载或卸载插件。3. 用宏qobject_cast()来判断一个插件是否实现了接口。Qt 插件开发的流程1. 设置一个接口集(只有纯虚函数的类)----就是上面那个头文件2. 声明插件类,插件类继承自 QObject 和插件实现的接口3. 用宏Q_INTERFACES()将插件实现告诉 Qt 元对象系统

在这里插入图片描述

效果

在这里插入图片描述

三、步骤:

3.1. 创建多目录项目:项目名称Application;

在这里插入图片描述
在这里插入图片描述

3.2. 添加子项目:带UI界面的 Widgets 主项目名称 App

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

3.3. 添加子项目:插件项目

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

源代码

在这里插入图片描述

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 【数据泄露】沙特知名零售公司客户信息遭泄露
  • 大语言模型稀疏水印技术
  • vue Ref 和 Reactive 原理解析
  • STM32智能家居控制系统教程
  • C语言实现三子棋
  • 【中项】系统集成项目管理工程师-第9章 项目管理概论-9.1PMBOK的发展与9.2项目基本要素
  • 机器学习之心一区级 | Matlab实现SMA-Transformer-LSTM多变量回归预测(黏菌算法优化)
  • 一个Spring Boot Web项目一些常用的配置点
  • DAY28-贪心
  • openGauss触发器详解
  • 昇思25天学习打卡营第XX天|Pix2Pix实现图像转换
  • Yarn 介绍
  • JavaScript轮播图
  • 软件工程简记
  • PHP枚举的使用 php enum
  • Android单元测试 - 几个重要问题
  • HTTP传输编码增加了传输量,只为解决这一个问题 | 实用 HTTP
  • JAVA 学习IO流
  • java多线程
  • js算法-归并排序(merge_sort)
  • leetcode388. Longest Absolute File Path
  • Mithril.js 入门介绍
  • nodejs:开发并发布一个nodejs包
  • PaddlePaddle-GitHub的正确打开姿势
  • scala基础语法(二)
  • vue:响应原理
  • vue2.0项目引入element-ui
  • Vue源码解析(二)Vue的双向绑定讲解及实现
  • 让你成为前端,后端或全栈开发程序员的进阶指南,一门学到老的技术
  • 小程序 setData 学问多
  • 小程序滚动组件,左边导航栏与右边内容联动效果实现
  • 学习Vue.js的五个小例子
  • 用jQuery怎么做到前后端分离
  • 完善智慧办公建设,小熊U租获京东数千万元A+轮融资 ...
  • ​Base64转换成图片,android studio build乱码,找不到okio.ByteString接腾讯人脸识别
  • ​LeetCode解法汇总2670. 找出不同元素数目差数组
  • #stm32驱动外设模块总结w5500模块
  • #我与Java虚拟机的故事#连载10: 如何在阿里、腾讯、百度、及字节跳动等公司面试中脱颖而出...
  • #中的引用型是什么意识_Java中四种引用有什么区别以及应用场景
  • %3cli%3e连接html页面,html+canvas实现屏幕截取
  • (2)(2.10) LTM telemetry
  • (十)c52学习之旅-定时器实验
  • ******之网络***——物理***
  • .Net Core中Quartz的使用方法
  • .net framwork4.6操作MySQL报错Character set ‘utf8mb3‘ is not supported 解决方法
  • .net 简单实现MD5
  • .NET/C# 使用 SpanT 为字符串处理提升性能
  • .NET中使用Protobuffer 实现序列化和反序列化
  • /bin/rm: 参数列表过长"的解决办法
  • @ 代码随想录算法训练营第8周(C语言)|Day53(动态规划)
  • @Autowired标签与 @Resource标签 的区别
  • [AIGC 大数据基础]hive浅谈
  • [BZOJ1877][SDOI2009]晨跑[最大流+费用流]
  • [C++]高精度 bign (重载运算符版本)
  • [CODE:-5504]没有[SYS.SYSOBJECTS]对象的查询权限