QMetaType 的弃用成员
以下 QMetaType 类的成员已被弃用。 提供它们是为了保持旧源代码的运行。强烈建议不要在新代码中使用它们。
静态公共成员
(已弃用) bool | compare(const void *lhs, const void *rhs, int typeId, int *result) |
(已弃用) void * | construct(int type, void *where, const void *copy) |
(已弃用) bool | convert(const void *from, int fromTypeId, void *to, int toTypeId) |
(已弃用) void * | create(int type, const void *copy = nullptr) |
(已弃用) bool | debugStream(QDebug &dbg, const void *rhs, int typeId) |
(已弃用) void | destroy(int type, void *data) |
(已弃用) void | destruct(int type, void *where) |
(已弃用) bool | hasRegisteredDebugStreamOperator() |
(已弃用) bool | hasRegisteredDebugStreamOperator(int typeId) |
(已弃用) bool | load(QDataStream &stream, int type, void *data) |
(已弃用) const QMetaObject * | metaObjectForType(int type) |
(已弃用) bool | save(QDataStream &stream, int type, const void *data) |
(已弃用) int | sizeOf(int type) |
(已弃用) int | type(const char *typeName) |
(已弃用) int | type(const QByteArray &typeName) |
(已弃用) QMetaType::TypeFlags | typeFlags(int type) |
(已弃用) const char * | typeName(int typeId) |
相关非成员函数
(已弃用) int | qRegisterMetaType(const char *typeName) |
成员函数文档
[静态, 已弃用]
bool QMetaType::compare(const void *lhs, const void *rhs, int typeId, int *result)
此函数已弃用。强烈建议不要在新代码中使用它。
请使用非静态 compare 方法代替。
比较左操作数(lhs)和右操作数(rhs)的对象。两个对象都必须是类型 typeId。如果 lhs 小于、等于或大于 rhs,则 result 被设置为小于、等于或大于零。如果比较成功,返回 true
,否则返回 false
。
[静态,已弃用]
void *QMetaType::construct(int type, void *where, const void *copy)
此函数已弃用。强烈建议不要在新代码中使用它。
在由 where 地址指向的现有内存中构造给定的 type 的值,这是 copy 的副本,并返回 where。如果 copy 为零,则构造默认值。
这是一个用于显式管理用于存储类型的内存的低级函数。如果您不需要此级别的控制(即,使用“new”而不是“placement new”),请考虑调用 create()。
您必须确保 where 指向可以存储类型 type 的位置的内存,并且 where 是适当对齐的。可以通过调用 sizeOf() 来查询类型的大小。
对齐的规则是,类型是对其自然边界对齐的,这是大于类型的较小的2的幂,除非此对齐大于平台的最大有用对齐。出于实际目的,大于 2 * sizeof(void*) 的对齐仅适用于特殊硬件指令(例如,x86 上的对齐 SSE 加载和存储)。
[静态,已弃用]
bool QMetaType::convert(const void *from, int fromTypeId, void *to, int toTypeId)
此函数已弃用。强烈建议不要在新代码中使用它。
将 from 处的对象从 fromTypeId 转换为 to 中预分配的按类型 toTypeId 保存的空间。如果转换成功,返回 true
,否则返回 false。
from 和 to 都必须是有效指针。
[静态,已弃用]
void *QMetaType::create(int type, const void *copy = nullptr)
此函数已弃用。强烈建议不要在新代码中使用它。
返回 copy 的副本,假设它属于类型 type。如果 copy 为零,则创建一个默认构造的实例。
另请参阅destroy(),isRegistered() 和 Type。
[静态,已弃用]
bool QMetaType::debugStream(QDebug &dbg, const void *rhs, int typeId)
此函数已弃用。强烈建议不要在新代码中使用它。
这是一个重载函数。
[静态,已弃用]
void QMetaType::destroy(int type, void *data)
此函数已弃用。强烈建议不要在新代码中使用它。
销毁 data,假设它属于给定的 type。
另请参阅create(),isRegistered() 和 Type。
[静态,已废弃]
void QMetaType::destruct(int type, void *where)
此函数已弃用。强烈建议不要在新代码中使用它。
销毁位于where的type的值。
与destroy()不同,此函数仅调用类型的析构函数,而不调用删除操作符。
另请参阅construct()。
[静态,已废弃]
模板 <typename T> bool QMetaType::hasRegisteredDebugStreamOperator()
此函数已弃用。强烈建议不要在新代码中使用它。
如果元类型系统已经注册了类型T的调试流操作符,则返回true
。
[静态,已废弃]
bool QMetaType::hasRegisteredDebugStreamOperator(int typeId)
此函数已弃用。强烈建议不要在新代码中使用它。
请使用QMetaType::hasRegisteredDebugStreamOperator()。
如果元类型系统已为类型id typeId注册了调试流操作符,则返回true
。
[静态,已废弃]
bool QMetaType::load(QDataStream &stream, int type, void *data)
此函数已弃用。强烈建议不要在新代码中使用它。
这是一个重载函数。
[静态,已废弃]
const QMetaObject *QMetaType::metaObjectForType(int type)
此函数已弃用。强烈建议不要在新代码中使用它。
返回type的QMetaType::metaObject
另请参阅metaObject。
[静态,已废弃]
bool QMetaType::save(QDataStream &stream, int type, const void *data)
此函数已弃用。强烈建议不要在新代码中使用它。
这是一个重载函数。
[静态,已废弃]
int QMetaType::sizeOf(int type)
此函数已弃用。强烈建议不要在新代码中使用它。
以字节为单位返回给定type的大小(即sizeof(T),其中T是type参数标识的实际类型)。
此函数通常与construct()一起使用,以执行对类型使用的底层管理。
另请参阅construct() 和 QMetaType::alignOf。
[静态,已废弃]
int QMetaType::type(const char *typeName)
此函数已弃用。强烈建议不要在新代码中使用它。
返回称为typeName的类型的一个句柄,如果没有此类类型,则返回QMetaType::UnknownType。
另请参阅isRegistered(),typeName() 和 Type。
[静态,已废弃]
int QMetaType::type(const QByteArray &typeName)
此函数已弃用。强烈建议不要在新代码中使用它。
这是一个重载函数。
返回称为typeName的类型的一个句柄,如果没有此类类型,则返回0。
另请参阅isRegistered() 和 typeName。
[静态,已废弃]
QMetaType::TypeFlags QMetaType::typeFlags(int type)
此函数已弃用。强烈建议不要在新代码中使用它。
返回指定 type 的标志。
[静态,已废弃]
const char *QMetaType::typeName(int typeId)
此函数已弃用。强烈建议不要在新代码中使用它。
返回与指定 typeId 相关联的类型名称,如果没有找到匹配的类型则返回空指针。返回的指针不应被删除。
参见type(),isRegistered(),Type 和 name.
相关非成员函数
[已废弃]
template <typename T> int qRegisterMetaType(const char *typeName)
此函数已弃用。强烈建议不要在新代码中使用它。
为类型 T
注册类型名称 typeName。返回由 QMetaType 使用的内部 ID。任何具有公共默认构造函数、公共复制构造函数和公共析构函数的类或结构体都可以进行注册。
此函数要求在函数被调用的点 T
是一个完全定义的类型。对于指针类型,它还要求所指向的类型是完全定义的。使用 Q_DECLARE_OPAQUE_POINTER() 可以注册指向已声明的类型的指针。
类型注册后,可以在运行时动态创建和销毁该类型的对象。
此示例注册了类 MyClass
qRegisterMetaType<MyClass>("MyClass");
此函数对于注册 typedef 以供 QMetaProperty 使用或在 QueuedConnections 中使用很有用。
typedef QString CustomString; qRegisterMetaType<CustomString>("CustomString");
注意:此函数仅适用于为别名 (typedef) 注册类型,对于其他情况应使用 Q_DECLARE_METATYPE 和 qMetaTypeId()。
参见isRegistered() 和 Q_DECLARE_METATYPE.
© 2024 Qt 公司。此处包含的文档贡献的版权属于各自的所有者。此处提供的文档是根据由自由软件基金会发布的 GNU 自由文档许可版本 1.3 的条款授权的。Qt 和相应的标志是芬兰的 Qt 公司及其全球子公司和关联公司的 商标。所有其他商标均为其各自所有者的财产。