【文件属性】:
文件名称:内省(Introspection)-QT-NOKIA培训资料(中文版)
文件大小:1.89MB
文件格式:PPT
更新时间:2024-05-16 03:17:38
QT NOKIA 培训 中文版
内省(Introspection)
类在运行时了解它们自己的信息
对实现脚本和动态语言的绑定
有很好的支持。
if (object->inherits("QAbstractItemView"))
{
QAbstractItemView *view = static_cast(widget);
view->...
enum CapitalsEnum { Oslo, Helsinki, Stockholm, Copenhagen };
int index = object->metaObject()->indexOfEnumerator("CapitalsEnum");
object->metaObject()->enumerator(index)->key(object->capital());
能够实现动态转换而不需要运行时类型检查( RTTI)
例子:它可以将枚举值转换成更容易阅读和保存的字符串
元对象了解细节
*
此处,幻灯片将走过QObject和元数据可用的不同特性。
第一个例子,继承关键字让你检查一个类是否继承,即,is-a,类。一个类继承自身,以便当决定如何转换时作为一个检查。这说明元数据了解类的层级。
另一个例子是元数据包含关于你的枚举的信息(是否通过Q_ENUM宏传递了枚举)。通过该方法,你可以轻易地实现枚举变量和文本之间的转换。这显示元数据拥有关于每个累得详细数据。
所有这些信息使到Qt容易跟脚本语言和其他动态环境( PyQt, Ruby, JavaScript,等等 )融为一体