En esta página

Clases C++ importantes proporcionadas por el módulo Qt Qml

El módulo Qt Qml proporciona clases C++ que implementan el marco QML. Los clientes pueden utilizar estas clases para interactuar con el tiempo de ejecución de QML (por ejemplo, inyectando datos o invocando métodos en objetos), y para instanciar una jerarquía de objetos a partir de un documento QML. El módulo Qt Qml proporciona más API de C++ que las clases enumeradas aquí, aunque las clases enumeradas aquí proporcionan los fundamentos del tiempo de ejecución de QML y los conceptos básicos de QML.

QML Runtime

Una aplicación QML típica con un punto de entrada C++ instanciará un QQmlEngine y, a continuación, utilizará un QQmlComponent para cargar un documento QML. El motor proporciona un QQmlContext predeterminado que será el contexto de evaluación de nivel superior utilizado para evaluar las funciones y expresiones definidas en el documento QML. La jerarquía de objetos definida en el documento QML se instanciará llamando a la función create() de la instancia QQmlComponent, suponiendo que no se hayan producido errores durante la carga del documento.

Es posible que el cliente desee modificar el QQmlContext proporcionado por el motor, inyectando propiedades u objetos en el contexto. Puede llamar a la función QQmlEngine::rootContext() para acceder al contexto de nivel superior.

Después de instanciar el objeto, el cliente normalmente pasará el control al bucle de eventos de la aplicación para que los eventos de entrada del usuario (como los clics del ratón) puedan ser entregados y manejados por la aplicación.

Nota: El módulo Qt Quick proporciona una clase de conveniencia, QQuickView, que proporciona un tiempo de ejecución QML y una ventana visual para mostrar una aplicación QML.

La clase QQmlEngine

La clase QQmlEngine proporciona un motor que puede gestionar una jerarquía de objetos definida en un documento QML. Proporciona un contexto QML raíz dentro del cual se evalúan las expresiones, y garantiza que las propiedades de los objetos se actualicen correctamente cuando sea necesario.

QQmlEngine permite configurar parámetros globales que se aplican a todos los objetos que gestiona; por ejemplo, el QNetworkAccessManager que se utilizará para las comunicaciones de red y la ruta de archivo que se utilizará para el almacenamiento persistente.

Consulte la documentación de la clase QQmlEngine para obtener información detallada sobre lo que proporciona la clase QQmlEngine y cómo puede utilizarse en una aplicación.

La clase QQmlContext

La clase QQmlContext proporciona un contexto para la instanciación de objetos y la evaluación de expresiones. Todos los objetos se instancian en un contexto particular, y todas las expresiones que se evalúan mientras se ejecuta una aplicación se evalúan dentro de un contexto particular. Este contexto define cómo se resuelven los símbolos y, por tanto, sobre qué valores opera la expresión.

Consulte la documentación de la clase QQmlContext para obtener información detallada sobre cómo modificar el contexto de evaluación de un objeto añadiendo o eliminando propiedades de un QQmlContext, y cómo acceder al contexto de un objeto.

Instanciación dinámica de objetos y evaluación dinámica de expresiones

La instanciación dinámica de objetos y la evaluación dinámica de expresiones son conceptos básicos de QML. Los documentos QML definen tipos de objeto que pueden instanciarse en tiempo de ejecución mediante QQmlComponent. Una instancia de la clase QQmlComponent puede crearse en C++ directamente, o mediante la función Qt.createComponent() en código QML imperativo. Las expresiones arbitrarias pueden calcularse en C++ mediante la clase QQmlExpression, y dichas expresiones pueden interactuar directamente con el contexto QML.

La clase QQmlComponent

La clase QQmlComponent puede utilizarse para cargar un documento QML. Requiere un QQmlEngine para instanciar la jerarquía de objetos definida en el documento QML.

Consulte la documentación de la clase QQmlComponent para obtener información detallada sobre cómo utilizar QQmlComponent.

La clase QQmlExpression

La clase QQmlExpression permite a los clientes evaluar expresiones JavaScript desde C++, utilizando un contexto de evaluación QML determinado. Esto permite a los clientes acceder a objetos QML por id, por ejemplo. El resultado de la evaluación se devuelve como QVariant, y las reglas de conversión las define el motor QML.

Consulte la documentación de la clase QQmlExpression para obtener información detallada sobre cómo utilizar QQmlExpression en una aplicación.

Uso de las clases en aplicaciones QML

Estas páginas describen cómo crear aplicaciones QML que interactúen con las clases C++:

© 2026 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.