在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
本文探讨了Qt5.9中QObject的属性设置与获取方式,详细介绍了如何使用setProperty替代已弃用的setUserData方法,并解释了这是由于QT_NO_USERDATA宏在后续版本中的变化。

5799

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



