在5.9的官方文档里是找不到QObject中的setUserData 的,相反他提供了setProperty().
void setUserData(uint id, QObjectUserData *data); 这个使用QObjectUserData *userData(uint id)const 来获取数据
bool QObject::setProperty(const char *name, const QVariant &value); 这个使用QVariant QObject::property(const char *name) const 来获取数据
在5.9中是找不到userdata的相关表述的,他是通过一个QT_NO_USERDATA 宏进行判断来打开的. 可能是为了兼容以往的版本
#ifndef QT_NO_USERDATA static uint registerUserData(); void setUserData(uint id, QObjectUserData* data); QObjectUserData* userData(uint id) const; #endif // QT_NO_USERDATA
这个是QT4.4版本中的描述
所以,在后续版本中应当使用setProperty