De Wikipedia, la enciclopedia libre
Saltar a navegación Saltar a búsqueda

Meta Object System es una parte del núcleo del marco Qt proporcionado para admitir extensiones Qt a C ++ como señales / ranuras para comunicación entre objetos, información de tipo de tiempo de ejecución y el sistema de propiedades dinámicas. [1]

Arquitectura [ editar ]

El sistema de metaobjetos consta de 3 cosas: la clase QObject , la macro Q_OBJECT y una herramienta llamada moc ( compilador de metaobjetos ). QObject es la clase base para todas las clases Qt, la macro Q_OBJECT se usa para habilitar características de metaobjetos en clases y finalmente moc es un preprocesador que cambia las instancias de macro Q_OBJECT al código fuente de C ++ para habilitar el mecanismo del sistema de metaobjetos en la clase en la que se encuentra usado. [2]

El uso del sistema de metaobjetos ha generado algunas críticas. En la documentación de Qt , se han dado varias razones para el uso del sistema de metaobjetos, incluidos los beneficios de la generación de código , el dinamismo de las GUI , el enlace automático a los lenguajes de scripting, no agregar limitaciones y también un rendimiento razonable en la implementación de señales / ranuras con moc. [3] Hay algunos esfuerzos para hacer que Qt no necesite un preprocesador. Estos esfuerzos incluyen volver a implementar Qt moc usando libclang. [4]

Referencias [ editar ]

  1. ^ "El sistema de metaobjetos - QtCore 5.1" . Proyecto Qt. 2013-07-04 . Consultado el 4 de julio de 2013 .
  2. ^ "Uso del compilador de metaobjetos (moc)" . Proyecto Qt. 2013-07-04 . Consultado el 4 de julio de 2013 .
  3. ^ "¿Por qué Qt usa Moc para señales y ranuras?" . Proyecto Qt. 2013-07-04 . Consultado el 4 de julio de 2013 .
  4. ^ "Re-implementación de Qt moc usando libclang" . Olivier Goffart. 2013-07-04 . Consultado el 4 de julio de 2013 .