Qt:元对象系统浅析

元对象系统基础功能:
(1)信号与槽
(2)运行时信息
(3)动态属性

元对象系统有三个支撑基础:

  1. object提供基础类,继承此则可利用元对象系统
  2. Q_OBJECT若使用元对象提供的服务,必须在类中包含此宏,编译后会自动生成元对象相应的源文件(moc_xxx.cpp)
  3. 元对象编译器(moc)会为每个QObject子类提供实现元对象特性所需的代码。(即第二点所述)

元对象系统还有以下一些附加特性:
(1)[virtual] const QMetaObject *QObject::metaObject() const (QMetaObject为结构体)
QMetaObject包含有关继承QObject的类的各种信息,例如类名、超类名、属性、信号和插槽。每个包含Q_OBJECT宏的QObject子类都有一个meta对象。
在这里插入图片描述

(2)bool QObject::inherits(const char *className) const
判断该实例是否继承自className类或是className类的子类。是则返回true。
在这里插入图片描述

(3)[static] QString QObject::tr(const char *sourceText, const char *disambiguation = nullptr, int n = -1)
(4)bool QObject::setProperty(const char *name, const QVariant &value)

(5)类型转换
qobject_cast()

QObject的所有子类使用Q_OBJECT宏,而不管它们是否实际使用信号、槽和属性。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值