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 )

成员函数文档编制

[static, deprecated] bool QMetaType:: compare (const void * lhs , const void * rhs , int typeId , int * result )

This function is deprecated. We strongly advise against using it in new code.

Use the non-static compare method instead

比较对象在 lhs and rhs . Both objects need to be of type typeId . result is set to less than, equal to or greater than zero, if lhs is less than, equal to or greater than rhs 。返回 true , if the comparison succeeded, otherwise false .

[static, deprecated] void *QMetaType:: construct ( int type , void * where , const void * copy )

This function is deprecated. We strongly advise against using it in new code.

Constructs a value of the given type in the existing memory addressed by where , that is a copy of copy ,并返回 where 。若 copy is zero, the value is default constructed.

This is a low-level function for explicitly managing the memory used to store the type. Consider calling create () if you don't need this level of control (that is, use "new" rather than "placement new").

You must ensure that where points to a location that can store a value of type type , and that where is suitably aligned. The type's size can be queried by calling sizeOf ().

The rule of thumb for alignment is that a type is aligned to its natural boundary, which is the smallest power of 2 that is bigger than the type, unless that alignment is larger than the maximum useful alignment for the platform. For practical purposes, alignment larger than 2 * sizeof(void*) is only necessary for special hardware instructions (e.g., aligned SSE loads and stores on x86).

另请参阅 destruct () 和 sizeOf ().

[static, deprecated] bool QMetaType:: convert (const void * from , int fromTypeId , void * to , int toTypeId )

This function is deprecated. We strongly advise against using it in new code.

Converts the object at from from fromTypeId to the preallocated space at to typed toTypeId 。返回 true ,若转换成功,否则 false。

Both from and to have to be valid pointers.

[static, deprecated] void *QMetaType:: create ( int type , const void * copy = nullptr)

This function is deprecated. We strongly advise against using it in new code.

Returns a copy of copy , assuming it is of type type 。若 copy is zero, creates a default constructed instance.

另请参阅 destroy (), isRegistered (),和 Type .

[static, deprecated] bool QMetaType:: debugStream ( QDebug & dbg , const void * rhs , int typeId )

This function is deprecated. We strongly advise against using it in new code.

这是重载函数。

[static, deprecated] void QMetaType:: destroy ( int type , void * data )

This function is deprecated. We strongly advise against using it in new code.

销毁 data , assuming it is of the type 给定。

另请参阅 create (), isRegistered (),和 Type .

[static, deprecated] void QMetaType:: destruct ( int type , void * where )

This function is deprecated. We strongly advise against using it in new code.

Destructs the value of the given type , located at where .

不像 destroy (), this function only invokes the type's destructor, it doesn't invoke the delete operator.

另请参阅 construct ().

[static, deprecated] template <typename T> bool QMetaType:: hasRegisteredDebugStreamOperator ()

This function is deprecated. We strongly advise against using it in new code.

返回 true , if the meta type system has a registered debug stream operator for type T.

[static, deprecated] bool QMetaType:: hasRegisteredDebugStreamOperator ( int typeId )

This function is deprecated. We strongly advise against using it in new code.

使用 QMetaType::hasRegisteredDebugStreamOperator () 代替。

返回 true , if the meta type system has a registered debug stream operator for type id typeId .

[static, deprecated] bool QMetaType:: load ( QDataStream & stream , int type , void * data )

This function is deprecated. We strongly advise against using it in new code.

这是重载函数。

[static, deprecated] const QMetaObject *QMetaType:: metaObjectForType ( int type )

This function is deprecated. We strongly advise against using it in new code.

返回 QMetaType::metaObject for type

另请参阅 metaObject ().

[static, deprecated] bool QMetaType:: save ( QDataStream & stream , int type , const void * data )

This function is deprecated. We strongly advise against using it in new code.

这是重载函数。

[static, deprecated] int QMetaType:: sizeOf ( int type )

This function is deprecated. We strongly advise against using it in new code.

Returns the size of the given type in bytes (i.e. sizeof(T), where T is the actual type identified by the type argument).

This function is typically used together with construct () to perform low-level management of the memory used by a type.

另请参阅 construct () 和 QMetaType::alignOf ().

[static, deprecated] int QMetaType:: type (const char * typeName )

This function is deprecated. We strongly advise against using it in new code.

将句柄返回给类型调用 typeName ,或 QMetaType::UnknownType 若没有这种类型。

另请参阅 isRegistered (), typeName (),和 Type .

[static, deprecated] int QMetaType:: type (const QByteArray & typeName )

This function is deprecated. We strongly advise against using it in new code.

这是重载函数。

将句柄返回给类型调用 typeName ,或 0 若没有这种类型。

另请参阅 isRegistered () 和 typeName ().

[static, deprecated] QMetaType::TypeFlags QMetaType:: typeFlags ( int type )

This function is deprecated. We strongly advise against using it in new code.

返回标志为给定 type .

另请参阅 QMetaType::TypeFlags .

[static, deprecated] const char *QMetaType:: typeName ( int typeId )

This function is deprecated. We strongly advise against using it in new code.

Returns the type name associated with the given typeId , or a null pointer if no matching type was found. The returned pointer must not be deleted.

另请参阅 type (), isRegistered (), Type ,和 name ().

相关非成员

[deprecated] template <typename T> int qRegisterMetaType (const char * typeName )

This function is deprecated. We strongly advise against using it in new code.

注册类型名称 typeName 为类型 T 。返回的内部 ID 用于 QMetaType 。可以注册拥有公共默认构造函数、公共副本构造函数和公共析构函数的任何类 (或结构)。

此函数要求 T 是在函数被调用时的完全定义类型。对于指针类型,它还要求指向完全定义的类型。使用 Q_DECLARE_OPAQUE_POINTER () 能够注册指向转发声明类型的指针。

在已注册类型后,可以在运行时动态创建和销毁该类型的对象。

此范例注册类 MyClass :

qRegisterMetaType<MyClass>("MyClass");
					

此函数对注册 typedef 很有用,因此它们可以用于 QMetaProperty ,或在 QueuedConnections

typedef QString CustomString;
qRegisterMetaType<CustomString>("CustomString");
					

警告: 此函数仅适用于注册别名 (typedef) 为每种其它用例 Q_DECLARE_METATYPE and qMetaTypeId () 应该被使用以取而代之。

另请参阅 isRegistered () 和 Q_DECLARE_METATYPE ().