Qt之插件

插件结构

QPluginLoader
+QObject* instance()
+QObjectList staticInstances()
+QVector staticPlugins()
QLibraryPrivate
+QAtomicPointer<std::remove_pointer>QtPluginInstanceFunction<::type> instanceFactory
+ QJsonObject metaData
+ QAtomicPointer<std::remove_pointer>Handle<::type> pHnd
QLibrary
QLibraryStore
- QMap<QString, QLibraryPrivate*> libraryMap

QPluginLoader:用于运行时加载插件

  • instance()方法获取插件的根组件
  • load()方法是从库获取方法qt_plugin_instance,并且存在instanceFactory变量中
  • unload()方法是卸载库,windows下是调用FreeLibrary,linux是调用dlclose,然后复位pHnd和instanceFactory
  • isLoaded()方法看是否加载完成,主要是看instanceFactory是否不为空
  • staticInstances()方法获取全局变量staticPluginList的实例副本
  • staticPlugins()获取全局变量staticPluginList

QLibrary:运行时加载动态库

  • resolve:解析得到函数指针
  • load:加载库
  • unload:卸载库
  • isLoaded:库是否加载完成
    QLibraryStore:用于存储库名与QLibraryPrivate 映射关系

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/722600.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

算法设计.

文章目录 1. 贪心算法&#xff1a;只看当前1.1 零钱兑换问题&#xff1a;力扣322 2. 活动选择问题3. 动态规划3.1 不同路径&#xff1a;3.2 0-1背包问题3.3 完全背包问题3.4 零钱兑换-动态规划 4. 最长公共字串--动态规划5. 最长公共子序列6. 最长递增子序列7. 打家劫舍8. 全排…

事务、视图、索引、数据备份和恢复

1.事务 事务&#xff08;TRANSACTION&#xff09;是一种机制、一个操作序列&#xff0c;包含了一组数据库操作命令&#xff0c;并且把所有的命令作为一个整体一起向系统提交或撤销操作请求&#xff0c;即这一组数据库操作命令要么都执行&#xff0c;要么都不执行。 事务是一个不…

信息熵 (Entropy)

在深度学习和机器学习中&#xff0c;熵是一个衡量不确定性或信息量的关键概念。它在各个方面发挥着作用&#xff0c;从数据的压缩和分布的特性分析&#xff0c;到模型的正则化和决策过程的优化。以下是熵在深度学习中的一些关键知识点&#xff1a; 信息熵 (Entropy) 信息熵是…

04. Nginx入门-Nginx WEB模块

测试环境 此处使用的yum安装的Nginx路径。 此处域名均在本地配置hosts。 主配置文件 路径&#xff1a;/etc/nginx/nginx.conf user nginx; worker_processes auto;error_log /var/log/nginx/error.log notice; pid /var/run/nginx.pid;events {worker_connection…

如何使用宝塔面板部署MySQL数据库,并结合内网穿透实现固定公网地址远程连接

文章目录 前言1.Mysql服务安装2.创建数据库3.安装cpolar3.1 开放局域网端口3.2 创建HTTP隧道 4.远程连接5.固定TCP地址5.1 保留一个固定的公网TCP端口地址5.2 配置固定公网TCP端口地址 前言 宝塔面板的简易操作性,使得运维难度降低,简化了Linux命令行进行繁琐的配置,下面简单几…

Android drawable selector

Android drawable selector 描述使用备份背景颜色 描述 Android 可绘制选择器&#xff08;drawable selector&#xff09;是一种可根据不同状态显示不同可绘制对象的 XML 资源。它通常用于实现按钮、列表项等控件的状态变化效果。 可绘制选择器的基本结构 一个可绘制选择器由…

Mybatis-Plus——04,自动填充时间(新注解)

自动填充&#xff08;新注解&#xff09; 一、数据库添加两个字段二、实体类字段属性上增加注解三、编写填充器四、查看结果4.1 插入结果4.2 修改结果 五、同步修改5.1实体类属性改成 INSERT_UPDATE5.2 在填充器的方法这里加上 updateTime5.3 查看结果————————创作不易…

【前缀和】AcWing. 562 / Google Kickstart2018 Round H Problem B《壁画》(c++)

1.题目说明 Thanh 想在一面被均分为 N 段的墙上画一幅精美的壁画。 每段墙面都有一个美观评分&#xff0c;这表示它的美观程度&#xff08;如果它的上面有画的话&#xff09;。 不幸的是&#xff0c;由于洪水泛滥&#xff0c;墙体开始崩溃&#xff0c;所以他需要加快他的作画…

视频号爆爽短剧推广,一键搬运,傻瓜式操作,日入2000+

首先&#xff0c;我想问下有没有人尝试过短剧推广&#xff0c;是否感觉最近短剧推广变得困难&#xff0c;或者收益甚微。这可能是因为许多人都在抖音、快手等大型平台上进行短剧推广&#xff0c;竞争非常激烈&#xff0c;就像在争夺一块有限的蛋糕&#xff0c;自然难以获得满意…

一键生成超好用的简历设计模板

对于缺乏工作经验和职业规划的应届生而言&#xff0c;使用简历设计平台&#xff0c;辅助我们完成简历分区、排版和美化流程&#xff0c;早就成为简历设计环节的 “潜规则”。这里我们挑选了 5 个能够实现免费下载、一键生成的简历设计平台&#xff0c;供大家参考借鉴。 即时设…

剑指RT-DETR改进RepVB:最新重参数化结构 顶会二次改进升级版,最新开源移动端网络架构

💡本篇内容:剑指RT-DETR改进RepVB:最新重参数化结构 顶会2023 二次改进升级版 最新开源移动端网络架构,速度贼快 💡🚀🚀🚀本博客 改进源代码改进 适用于 RT-DETR 按步骤操作运行改进后的代码即可 💡:重点:该专栏《剑指RT-DETR原创改进》只更新改进 RT-DETR …

与hr沟通的话术记录

投简历的时候&#xff0c;能不能获得面试机会&#xff0c;取决于hr是否足够信赖你的简历。如果人家不够信赖你的简历&#xff0c;相信你也没有面试机会。 然后&#xff0c;第二个就是&#xff0c;与hr在沟通的时候&#xff0c;不要谈及自己的缺点&#xff0c;无论是面试前&…

洛谷P1888 三角函数

输入一组勾股数 a,b,c&#xff08;abc&#xff09;&#xff0c;用分数格式输出其较小锐角的正弦值。&#xff08;要求约分。&#xff09; 输入格式 一行&#xff0c;包含三个正整数&#xff0c;即勾股数a,b,c&#xff08;无大小顺序&#xff09;。 输出格式 一行&#xff0…

LLaMA模型的发布与创新潮流

时间线从2023年2月24日开始&#xff0c;Meta推出了LLaMA模型&#xff0c;虽然开源了代码&#xff0c;却没有开源模型权重。LLaMA模型可以说是相对较小的&#xff0c;拥有7B、13B、33B和65B参数的几种版本&#xff0c;训练时间相对较长&#xff0c;因此相对于其大小而言能力强大…

C#进阶高级语法之LINQ:常用集合类的扩展方法

LINQ&#xff08;Language Integrated Query&#xff09;是.NET框架的一个组成部分&#xff0c;它提供了一种声明性的数据查询和操作方法&#xff0c;可以用于操作集合、数据库等各种数据源。LINQ扩展了C#和VB.NET等语言&#xff0c;使得开发者可以用类似于查询SQL语句的方式查…

H5双人五子棋小游戏

H5小游戏源码、JS开发网页小游戏开源源码大合集。无需运行环境,解压后浏览器直接打开。有需要的,私信本人,发演示地址,可以后再订阅,发源码,含60+小游戏源码。如五子棋、象棋、植物大战僵尸、开心消消乐、扑鱼达人、飞机大战等等 <!DOCTYPE html> <html> <…

Android开发者必看,我的移动开发春季历程

热修复介绍 1.开发流程 当项目出现紧急bug时&#xff0c;传统的开发流程是发布新版本&#xff0c;引导用户覆盖安装。抛开平台审核上线的时间不说&#xff0c;一天重复下载安装至少两次的用户体验是很差的。而热修复的出现完美解决了这个问题&#xff0c;用户在收到服务器推送…

前端项目提示node版本问题解决

The engine “node” is incompatible with this module. Expected version “>18.12.0”. Got “16.15.0” error Found incompatible module. 出现这个问题的时候&#xff0c;设置yarn config set ignore-engines true可以解决

安装完NGINX 已经正常启动,用IP访问显示的是Welcome to CentOS?

下头Nginx 以前配置服务器难道配置完nginx默认访问80端口进入不应该是欢迎来到nginx吗&#xff0c;nono变了 nginx变了 现在默认访问就是Welcome to CentOS 你的配置没有问题 只要你能访问 就行 直接改成你的项目地址就ok了

设计模式——2_3 迭代器(Iterator)

生活就像一颗巧克力&#xff0c;你永远不知道下一颗是什么味道 ——《阿甘正传》 文章目录 定义图纸一个例子&#xff1a;假如你的供应商提供了不同类型的返回值单独的遍历流程实现 碎碎念如果读写同时进行会发生啥&#xff1f;外部迭代和内部迭代迭代器和其他模式迭代器和组合…