关于在Qt中使用未记录的类

时间:2011-11-24 17:30:19

标签: c++ qt qt4

在Qt中使用未记录的QObjectUserData类和QObject::setUserData是否安全?

3 个答案:

答案 0 :(得分:16)

相反,您可以查看使用QObject::setProperty,这样您不仅可以设置编译时声明的属性,还可以设置在使用前不需要声明的动态属性。这允许您在运行时将任意值附加到QObject,类似于用户数据。

答案 1 :(得分:9)

通常,您不应该依赖未记录的API。如果您计划升级Qt,请不要使用它!

答案 2 :(得分:4)

未记录的类通常是内部类,而不是Qt API的一部分。这意味着,不保证API不会在下一个Qt版本中更改或完全删除该类。例如,qobject_p.h包含以下警告:

//  W A R N I N G
//  -------------
//
// This file is not part of the Qt API.  It exists for the convenience
// of qapplication_*.cpp, qwidget*.cpp and qfiledialog.cpp.  This header
// file may change from version to version without notice, or even be removed.
//
// We mean it.

因此,如果您使用内部API,那么您可能需要自行修复/重新实现切换到下一个Qt版本时所执行的操作。