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

Qt中常用宏定义

Qt中常用宏定义

  • 一、Q_DECLARE_PRIVATE(Class)
  • 二、Q_DECLARE_PRIVATE_D(Dptr, Class)
  • 三、Q_DECLARE_PUBLIC(Class)
  • 四、Q_D(Class) 和 Q_Q(Class)

一、Q_DECLARE_PRIVATE(Class)

#define Q_DECLARE_PRIVATE(Class) inline Class##Private* d_func() { # 此处的 d_ptr 是属于QObject类中的私有成员变量Q_CAST_IGNORE_ALIGN(return reinterpret_cast<Class##Private *>(qGetPtrHelper(d_ptr));)           } inline const Class##Private* d_func() const { Q_CAST_IGNORE_ALIGN(return reinterpret_cast<const Class##Private *>(qGetPtrHelper(d_ptr));) } friend class Class##Private;

二、Q_DECLARE_PRIVATE_D(Dptr, Class)

#define Q_DECLARE_PRIVATE_D(Dptr, Class) inline Class##Private* d_func() {Q_CAST_IGNORE_ALIGN(return reinterpret_cast<Class##Private *>(qGetPtrHelper(Dptr));) } inline const Class##Private* d_func() const {Q_CAST_IGNORE_ALIGN(return reinterpret_cast<const Class##Private *>(qGetPtrHelper(Dptr));) } friend class Class##Private;

三、Q_DECLARE_PUBLIC(Class)

#define Q_DECLARE_PUBLIC(Class)                                    inline Class* q_func() {return static_cast<Class *>(q_ptr); } inline const Class* q_func() const{ return static_cast<const Class *>(q_ptr); } friend class Class;

四、Q_D(Class) 和 Q_Q(Class)

#define Q_D(Class) Class##Private * const d = d_func()
#define Q_Q(Class) Class * const q = q_func()
http://www.lryc.cn/news/327601.html

相关文章:

  • 【计算机网络】第 9 问:四种信道划分介质访问控制?
  • Rust编程(五)终章:查漏补缺
  • LLM漫谈(五)| 从q star视角解密OpenAI 2027年实现AGI计划
  • 【echart】数据可视化+vue+vite遇到问题
  • mac m1安装和使用nvm的问题
  • git泄露
  • Java项目:78 springboot学生宿舍管理系统的设计与开发
  • ArcGis Pro Python工具箱教程 03 工具箱中工具自定义
  • 【C++初阶】之类和对象(中)
  • Vue2(十一):脚手架配置代理、github案例、插槽
  • 在宝塔面板中,为自己的云服务器安装SSL证书,为所搭建的网站启用https(主要部分攻略)
  • 学习JavaEE的日子 Day32 线程池
  • @Transactional 注解使用的注意事项
  • 电商系列之库存
  • Apache HBase(二)
  • 【设计模式】原型模式详解
  • 企微侧边栏开发(内部应用内嵌H5)
  • 如何确定最优的石油管道位置
  • FPGA 图像边缘检测(Canny算子)
  • 2024.3.28学习笔记
  • 33.HarmonyOS App(JAVA)鸿蒙系统app数据库增删改查
  • 寄主机显示器被快递搞坏了怎么办?怎么破?
  • python爬虫-bs4
  • SpringBoot学习之ElasticSearch下载安装和启动(Mac版)(三十一)
  • OC对象 - Block解决循环引用
  • Java设计模式之装饰器模式
  • Java基础知识总结(25)
  • Vue3 实现基于token 用户登录
  • 在word中显示Euclid Math One公式的问题及解决(latex公式,无需插件)
  • 江协科技STM32:按键控制LED光敏传感器控制蜂鸣器