前言
学习自: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);