Qt 元对象系统

Qt元对象系统

Qt 中引入了元对象系统(MOC)对标准 C++语言进行扩展,增加了信号与槽、属性系统、动态翻译等特性。

  • 元对象是指能够操纵、创建、描述或执行其他对象的对象;
  • 元对象可能包含的信息包括基础对象的类型、接口、类、方法、属性、变量和控制结构等

一、元对象系统概述

构建项目时,MOC会读取 C++ 源文件,当它发现类的定义里有 Q_OBJECT 宏时,它就会为这个类生成另一个包含元对象支持代码的 C++ 源文件,这个生成的源文件连同类的实现文件一起被标准 C++ 编译器编译和连接。

  • QObject 类是所有使用元对象系统的类的基类。
  • 必须在一个类的开头部分插入宏 Q_OBJECT,这样这个类才可以使用元对象系统的特性。
  • MOC 为每个 QObject 的子类提供必要的代码来实现元对象系统的特性。

元对象系统的特性通过QObject 的一些函数来实现,其核心特性如下。

  1. 元对象

    • 每个 QObject 及其子类的实例都有一个元对象

    • metaObject():返回元对象指针,静态变量 staticMetaObject 是元对象

  2. 类型信息

    • inherits():可以判断对象是不是从某个类继承的类的实例
  3. 对象树

    • 对象树指的是表示对象

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值