Integrating QML and JavaScript

The QML language uses a JSON-like syntax and allows various expressions and methods to be defined as JavaScript functions. It also allows users to import JavaScript files and use the functionality those imports provide.

This allows developers and designers to leverage the knowledge they have of JavaScript to quickly develop both user-interfaces and application logic.

JavaScript Expressions

QML has a deep JavaScript integration, and allows signal handlers and methods to be defined in JavaScript. Another core feature of QML is the ability to specify and enforce relationships between object properties using property bindings, which are also defined using JavaScript.

See the documentation page titled JavaScript Expressions in QML Documents for more information about using JavaScript expressions in QML.

JavaScript Resources

Application logic defined in JavaScript functions may be separated into separate JavaScript files known as JavaScript resources. There are several different kinds of JavaScript resources, with different semantics.

See the documentation page titled Defining JavaScript Resources In QML for more information about defining JavaScript resources for QML.

JavaScript Imports

A QML document may import JavaScript resources, and JavaScript resources may import other JavaScript resources as well as QML modules. This allows an application developer to provide application logic in modular, self-contained files.

See the documentation page titled Importing JavaScript Resources for more information on how to import JavaScript resources and how to use the functionality they provide.

JavaScript Host Environment

The QML engine provides a JavaScript environment that has some differences to the JavaScript environment provided by a web browser. Certain limitations apply to code running in the environment, and the QML engine provides various objects in the root context which may be unfamiliar to JavaScript developers.

These limitations and extensions are documented in the description of the JavaScript Host Environment provided by the QML engine.

There is also an in depth description of the memory management employed by the JavaScript engine.

Configuring the JavaScript engine

For specific use cases you may want to override some of the parameters the JavaScript engine uses for handling memory and compiling JavaScript. See Configuring the JavaScript engine for more information on these parameters.

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