Pregunta

Este enlace: http://doc.trolltech.com/4.5/moc.html#moc dice

La herramienta MOC lee un archivo de encabezado C ++. Si encuentra una o más declaraciones de clase que contienen la macro Q_Object, produce un archivo fuente de C ++ que contiene el código Meta-Object para esas clases.

¿Qué es un meta ¿código de objeto?

Edición 1

¿Cómo saber en qué clases debería escribir el Q_Object? Un ejemplo son las señales y las ranuras, ¿en cualquier otro caso en los que sea necesario utilizar?

¿Fue útil?

Solución

Los meta objetos mejoran los lenguajes de programación creando nuevos o manipular objetos existentes. Proporcionan funcionalidades que un lenguaje en realidad no tiene en sí mismo. Los meta objetos se interpretan por tiempo de compilación o tiempo de ejecución. En Qt y C ++ se realiza durante el tiempo de compilación por el compilador de objetos meta (MOC).

Un caso de ejemplo es el uso del concepto de señal/ranura.

Otros consejos

Puedes leer el artículo QT -THERALS e invertir Para obtener un conocimiento profundo sobre QT y su compilador MOC (compilador Meta Objet). En resumen, un meta objeto es creado por el compilador MOC de QT para agregar información adicional a una clase como el mecanismo de señal/ranura, etc.

Un código de meta objeto en el entorno QT es un archivo fuente de C ++ que es una versión ampliada del archivo de origen C ++ donde ha puesto Q_Object (y/o otras macros relacionadas). El código de meta objeto tendrá su implementación más algún otro código adicional (meta) para que funcione el mecanismo de señal y ranuras.

Un meta-objeto contiene metainformación sobre un objeto como su nombre y una descripción textual de sus señales y ranuras. Esto hace posible llamar a la señal por "nombre". Ver la documentación sobre QmetaObject y esto artículo.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top