2011-11-24 12 views
9

¿Es seguro utilizar la clase QObjectUserData no documentada y QObject::setUserData en Qt?Acerca del uso de una clase no documentada en Qt

+0

Parece que es un remanente de Qt 4.2? Aconsejaría usar una versión más nueva de Qt, como 4.7. ¿Qué es exactamente lo que quieres hacer con eso? –

Respuesta

15

En su lugar, puede ver usando QObject::setProperty, esto le permite establecer no solo propiedades declaradas de tiempo de compilación, sino también propiedades dinámicas que no necesitan ser declaradas antes del uso. Esto le permite adjuntar valores arbitrarios a QObjects en tiempo de ejecución, de forma similar a los datos del usuario.

9

En general, no debe confiar en las API no documentadas. Si alguna vez planea actualizar Qt, ¡entonces no lo use!

4

Las clases no documentadas suelen ser clases internas y no forman parte de la API Qt. Eso significa que no se garantiza que la API no cambie o que la clase se elimine por completo en la próxima versión de Qt. Por ejemplo, qobject_p.h contiene la siguiente advertencia:

// 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. 

tanto, si utiliza la API interna, que está en su propia, y podría tener que fijar/reimplementar lo que estaba haciendo cuando se cambia a la siguiente versión de Qt .

Cuestiones relacionadas