原文
Qt帮助手册对T qobject_cast(QObject *object)介绍的原文:

翻译
函数说明
T qobject_cast(QObject *object)
如果 object 是类型 T 或其子类的对象,则将给定的 object 转换为类型 T;如果不是,则返回 0。如果 object 是 0,那么也会返回 0。
注意:类型 T 必须直接或间接继承自 QObject 并且声明了 Q_OBJECT 宏。
一个类被认为是它自身的子类。
示例:
QObject *obj = new QTimer; // QTimer 继承自 QObject
QTimer *timer = qobject_cast<QTimer *>(obj);
// timer == (QObject *)obj
QAbstractButton *button = qobject_cast<QAbstractButton *>(obj);
// button == 0
qobject_cast() 的行为类似于标准 C++ 的 dynamic_cast(),但它不需要 RTTI 支持,并且可以跨动态库边界工作。qobject_cast() 还可以与接口一起使用;有关详细信息,请参见 Plug & Paint 示例。
警告
如果 T 没有声明 Q_OBJECT 宏,则函数的返回值是未定义的。

1042

被折叠的 条评论
为什么被折叠?



