En esta página

Integración de QML y JavaScript

El lenguaje QML utiliza una sintaxis similar a JSON y permite definir varias expresiones y métodos como funciones de JavaScript. También permite a los usuarios importar archivos JavaScript y utilizar la funcionalidad que proporcionan esas importaciones.

Esto permite a los desarrolladores y diseñadores aprovechar los conocimientos que tienen de JavaScript para desarrollar rápidamente tanto interfaces de usuario como lógica de aplicación.

Expresiones de JavaScript

QML tiene una profunda integración con JavaScript y permite definir manejadores de señales y métodos en JavaScript. Otra característica fundamental de QML es la posibilidad de especificar y reforzar relaciones entre propiedades de objetos mediante enlaces de propiedades, que también se definen con JavaScript.

Consulte la página de documentación Expresiones JavaScript en documentos QML para obtener más información sobre el uso de expresiones JavaScript en QML.

Creación dinámica de objetos QML a partir de JavaScript

QML admite la creación dinámica de objetos desde JavaScript. Esto resulta útil para retrasar la instanciación de objetos hasta que sea necesario, mejorando así el tiempo de inicio de la aplicación. También permite crear objetos visuales de forma dinámica y añadirlos a la escena en respuesta a entradas del usuario u otros eventos. Esta funcionalidad puede utilizarse de dos formas principales.

Los objetos pueden crearse dinámicamente a partir de JavaScript de forma imperativa mediante la creación dinámica de objetos. Esto puede ser útil, por ejemplo, cuando se utiliza QML como lenguaje de scripting de aplicaciones.

Nota: cuando se crean interfaces de usuario, la forma preferida de crear objetos dinámicamente es utilizar construcciones declarativas, ya que se integran mejor con el motor y las herramientas QML. Existen varios tipos que permiten esta funcionalidad, como los tipos Loader, Instantiator, Repeater.

Recursos JavaScript

La lógica de aplicación definida en funciones JavaScript puede separarse en archivos JavaScript independientes conocidos como recursos JavaScript. Existen diferentes tipos de recursos JavaScript, con diferentes semánticas.

Consulte la página de documentación titulada Definición de recursos JavaScript en QML para obtener más información sobre la definición de recursos JavaScript para QML.

Importaciones de JavaScript

Un documento QML puede importar recursos JavaScript, y los recursos JavaScript pueden importar otros recursos JavaScript, así como módulos QML. Esto permite a un desarrollador de aplicaciones proporcionar lógica de aplicación en archivos modulares y autocontenidos.

Consulte la página de documentación titulada Importación de recursos JavaScript para obtener más información sobre cómo importar recursos JavaScript y cómo utilizar la funcionalidad que proporcionan.

Entorno de host JavaScript

El motor QML proporciona un entorno JavaScript que presenta algunas diferencias con el entorno JavaScript proporcionado por un navegador web. Se aplican ciertas limitaciones al código que se ejecuta en el entorno, y el motor QML proporciona varios objetos en el contexto raíz que pueden resultar desconocidos para los desarrolladores de JavaScript.

Estas limitaciones y extensiones se documentan en la descripción del entorno de host JavaScript que proporciona el motor QML.

También hay una descripción detallada de la gestión de memoria empleada por el motor JavaScript.

Configuración del motor JavaScript

Para casos de uso específicos, es posible que desee anular algunos de los parámetros que utiliza el motor JavaScript para gestionar la memoria y compilar JavaScript. Consulte Configuración del motor JavaScript para obtener más información sobre estos parámetros.

Creación de aplicaciones programables

Además de utilizar JavaScript en documentos QML, Qt también permite incrustar un motor JavaScript en aplicaciones C++ para hacerlas programables. Esto permite ampliar la funcionalidad de la aplicación utilizando JavaScript sin tener que recompilar la aplicación.

Consulte Making Applications Scriptable para obtener información detallada sobre el uso del motor JavaScript en aplicaciones C++, incluido cómo exponer instancias de QObject a scripts y consideraciones de seguridad.

© 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.