元对象系统:动态类型转换qobject< *>()

前言

学习自:Qt Creator 快速入门(第三版)霍亚飞 编著

Qt中的元对象系统(Meta-Object System)对象间通信的信号和槽机制,运行时类型信息和动态属性系统。

元对象系统还提供了其他特性:

QMetaObject::className()可以在运行时以字符串形式返回类名,

QObject:inherits()函数返回一个对象是否是QObject继承树上一个类的实例信息;

QObject::tr()和QObject::trUtf8()进行字符串编译来实现国际化;

QObject::setProperty()和QObject::property()通过名字的动态设置或者获取对象属性

QMetaObject::newInstance()构造类的一个新实例。

动态类型转换

使用qobject_cast()函数对QObject类进行动态类型转换,类似于标准C++ 中的dynamic_cast()函数。

这个函数尝试将他的参数转换为尖括号中的类型的指针,

如果是正确类型,返回一个非零的指针;

如果类型不兼容,则返回0.

QObject *obj = new MyWidget;
QWidget *widget = qobject_cast <QWidget *>(obj);

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值