第8篇 基础(八)Q_OBJECT&Q_INTERFACES&Q_PLUGIN_METADATA&Q_UNUSED&Q_DECLARE_INTERFACE
2023-09-14 09:05:33 时间
1、Qt 类中Q_OBJECT的作用
(1)QObject 是所有Qt对象的基类。
(2)QObject 是Qt模块的核心。它的最主要特征是关于对象间无缝通信的机制:信号与槽。使用connect()建立信号到槽的连接,使用disconnect()销毁连接,使用blockSignals()暂时阻塞信号以避免无限通知循环,使用connectNotify()和disconnectNotify()追踪连接。
(3)宏Q_OBJECT是任何实现信号、槽或属性的强制性要求。不管是否需要实现这些机制,都要求使用这个宏。否则会引发一些函数的奇怪行为。
(4)QObject继承要写在第一个,不然Q_OBJECT就不起作用,所以将继承放在第一位
2、开发Qt插件时几个重要的宏
Q_INTERFACES(…)
这个宏告诉 Qt 类实现了哪些接口。 这在实现插件时使用。
Q_PLUGIN_METADATA(…)
此宏用于声明作为实例化此对象的插件的一部分的元数据。宏需要声明通过对象实现的接口的 IID,并引用包含插件元数据的文件。Qt 插件的源代码中应该只出现一次这个宏。
3、Q_UNUSED的使用
在构建比较大型的工程的时候,若继承,重构虚函数,写数据model等等比较多的时候,会给出大量的 “未引用的形参” ,“warning: unused parameter ” 的告警。这种告警多了会影响看出真正有问题的地方。
Q_UNUSED() 没有实质性的作用,用来避免编译器警告
4、Q_DECLARE_INTERFACE
这个宏通常在被放到一个类被定后的位置。详细内容查看 Plug & pain。
如果你想把Q_DECLARE_INTERFACE用于命名空间的接口类,要确保Q_DECLARE_INTERACE不在命名空间中。
相关文章
- 卡方检验spss步骤_数据分析–学统计&SPSS操作
- Abacus.AI&微软最新《神经体系结构搜索NAS: 基础与趋势》教程
- 一码中_amp是什么意思
- 虚拟内存 & I/O & 零拷贝
- 照片视频HDR效果软件Photo & Video HDR
- 【JDK8 新特性 8】JDK 8新增的Optional类&新的日期和时间 API & 重复注解与类型注解
- java中的stringbuffer是什么_java中&和&&的区别
- Unreal随笔系列2: 初始化流程&Gameplay基础类
- ECCV2022 &CVPR2022论文速递2022.7.8!
- ECCV2022 &CVPR2022论文速递2022.7.28!
- 因果推断&计算机网络、体系结构与代码生成 | 犀牛鸟精英人才计划课题宣讲会第七场
- 【数据结构】队列的顺序表实现&&收尾栈和队列
- Mac重装系统太麻烦?试试App Cleaner & Uninstaller 8轻松清理!
- Javascript&DHTMLDOM基础和基本API