¿Qué es un QVariant
y cuándo se debe usar?¿Qué es un QVariant y cuándo debería usarse?
Respuesta
QVariant se utiliza para almacenar referencias a valores en los que no necesariamente se conoce lo que está dentro. Es una forma de crear API que puede aceptar "cualquier cosa" como referencia a un tipo desconocido. IE, en lugar de tener que tener una API que acepte un largo, y otro para un int, y otro para un float, y otro para un string, puede tener un solo API que acepte un QVariant.
Luego, dentro de una función más compleja donde necesita un tipo determinado (como en QSettings) puede extraer justo lo que necesita de la Variante después de recuperarla.
QVariant es un contenedor de variables. Puede almacenar variables de diferentes tipos. Similar de alguna manera a vacío *. Pero le proporciona información sobre el tipo almacenado.
Se puede utilizar, por ejemplo, para devolver diferentes tipos de valores de una función.
Como ejemplo de uso: http://doc.qt.nokia.com/stable/qsettings.html#setValue –
Diría que es como un contenedor para un vacío * a un valor que le interese. Proporciona alguna funcionalidad adicional que le ayuda a convertir el elemento contenido en su tipo original (por ejemplo, puede solicitar el Tipo del objeto y, si es el tipo que desea (por ejemplo, QString), puede hacer que QVariant convierta su valor contenido volver a un QString para ti). – michaelmoo
- 1. ¿Qué hace '@reify' y cuándo debería usarse?
- 2. ¿Qué es objc_setAssociatedObject() y en qué casos debería usarse?
- 3. ¿Cuál es el método de JavaScript CollectGarbage()? ¿Cuándo y por qué debería usarse?
- 4. ¿Qué es un MvcHtmlString y cuándo debería usarlo?
- 5. ¿Qué es un ÍNDICE ESPACIAL y cuándo debería usarlo?
- 6. iPhone: Cuándo debería usarse el indicador de actividad de red
- 7. ¿Cuándo debería usarse el archivo dimens.xml en Android?
- 8. ¿Por qué debería usarse el modismo "PIMPL"?
- 9. ¿Cuándo y por qué debería usarse $ _REQUEST en lugar de $ _GET/$ _POST/$ _COOKIE?
- 10. ¿Qué es uint_fast32_t y por qué debería usarse en lugar del int normal y uint32_t?
- 11. ¿Cuándo y por qué debería usar TStringBuilder?
- 12. ¿Cuándo debería usar Silverlight y cuándo XNA?
- 13. ¿Cuándo debería usarse un parámetro `out` en lugar de devolver un tipo complejo?
- 14. Arguments.callee está en desuso - ¿qué debería usarse en su lugar?
- 15. ¿Qué implementación de OrderedDict debería usarse en python2.6?
- 16. ¿Qué técnica debería usarse para eliminar verificaciones de colisión 2d?
- 17. std :: function y std :: bind: ¿qué son y cuándo deberían usarse?
- 18. ¿Cuándo debería usar TCP_NODELAY y cuándo TCP_CORK?
- 19. ¿Cuándo deberían usarse los archivos XSD?
- 20. C: ¿Qué carácter debería usarse para ptrdiff_t en printf?
- 21. ¿Cuándo deberían usarse BOOL y bool en C++?
- 22. ¿Debería Direct3D usarse sobre OpenGL en Windows?
- 23. En SQL Server, ¿cuándo debería usar GO y cuándo debería usar punto y coma?
- 24. ¿Cuándo y por qué debería considerar asp.net MVC?
- 25. ¿Qué es un tipo?
- 26. ¿Para qué sirve XML y cuándo debería usarlo?
- 27. ¿Qué es Request.InputStream y cuándo usarlo?
- 28. ¿Cuándo debería establecer GL_TEXTURE_MIN_FILTER y GL_TEXTURE_MAG_FILTER?
- 29. ¿Cuándo debería crear un destructor?
- 30. ¿Cuándo debería usar un analizador?
Realmente debería aceptar algunas notas y escribir mejores preguntas. – 0xbaadf00d