有做公司网站国外做伞的品牌网站
qt中的元对象系统提供了对象间通信的信号和槽机制、运行时类型
 信息和动态属性系统;
1.该类必须继承自QObject类;
 2.必须在类的私有声明区声明Q_OBJECT宏(在类定义时,如果没有指定,public或private,则默认为private);
 3.元对象编译器Meta-Object Compiler(moc)为QObject的子类实现元对象特性提供必要的代码;
 moc工具读取一个C++源文件,如果它发现一个或多个类的声明中包含Q_OBJECT宏,
 则会另创建一个以moc_作为前缀的C++源文件,其中包含类为每一个类生成的元对象代码,
 这些产生的源文件也会参与编译和链接;
元对象还提供了其他一些特性
 1.QObject::metaObject()函数可以返回一个类的元对象;
 2.QMetaObject::className()可以在运行时以字符串形式返回类名,而不需要C++编辑器
 原生的运行时类型信息(RTTI)的支持
 3.QObject::inherits()函数返回一个对象是否是QObject继承树上的一个类的实例的信息;
 4.QObject::tr()和QObject::trUtf8()进行字符串翻译来实现国际化;
 5.QObject::setProperty()和QObject::property()通过名字来动态设置或者获取对象属性;
 6.QMetaObject::newInstance构造类的一个新实例;
 还可以使用qobject_cast()函数对QObject类型进行动态类型转换,类似C++中dynamic_cast()函数,不在需要
 RTTI的支持,若是正确类型,则返回一个非零的指针,若类型不兼容,则返回0
