在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