Soy razonablemente nuevo en el uso del marco QT en combinación con C++. Me preguntaba: ¿es una buena idea basar mis clases de dominio en QObject? ¿O debería hacer esto solo para las clases más arriba en la jerarquía? (más cerca del nivel de interfaz de usuario). La documentación de QT no está claro en esto:QT: ¿Es una buena idea basar mis objetos de dominio en QObject?
tomado de la documentación de Qt:
el sistema de meta-objeto es una extensión C++ que hace que el lenguaje más adecuado para cierto programación de componentes GUI.
Obviamente, quiero construir mi aplicación de una manera bien estructurada. En los últimos días he estado buscando en la documentación de QT para encontrar una respuesta a esta pregunta. No quiero cometer ningún error elemental que haga que mi aplicación cojee por toda la eternidad ;-).
Ya he consultado la documentación básica para QObject y el modelo Qt Object. También encontré un freshmeat article que me ayudó, pero realmente no me ayudó a llegar a una conclusión. Otra cosa que me confunde es que QT en sí mismo no parece ser consistente en este asunto porque no todas las clases QT usan QObject como una clase base.
Las ventajas de utilizar QObject como clase base como las veo:
- Jerarquía
- señales y slots
- Propiedades
- ser capaz de usar punteros vigilados
- internacionalización
Sin embargo, no necesito Es cualquiera de estas funcionalidades en la mayoría de mis clases de dominio. ¿Hay una regla de mejores prácticas para esto? ¿O debería ser la regla: úselo si necesita alguno de los puntos mencionados anteriormente?
esperanza Yo no hice esto también confuso :-)
QSharedPointer y QScopedPointer se pueden aplicar a cualquier clase, que no son exclusivos de las clases QObject, lo mismo para la internacionalización, 'tr' es una función estática en QObject, por lo que se puede utilizar desde cualquier lugar –