Integration von QML und JavaScript
Die QML-Sprache verwendet eine JSON-ähnliche Syntax und ermöglicht es, verschiedene Ausdrücke und Methoden als JavaScript-Funktionen zu definieren. Außerdem können Benutzer JavaScript-Dateien importieren und die von diesen Importen bereitgestellten Funktionen nutzen.
Dies ermöglicht es Entwicklern und Designern, ihre JavaScript-Kenntnisse zu nutzen, um sowohl Benutzeroberflächen als auch Anwendungslogik schnell zu entwickeln.
JavaScript-Ausdrücke
QML verfügt über eine tiefe JavaScript-Integration und ermöglicht die Definition von Signalhandlern und Methoden in JavaScript. Ein weiteres Kernmerkmal von QML ist die Möglichkeit, Beziehungen zwischen Objekteigenschaften mit Hilfe von Property-Bindings zu spezifizieren und zu erzwingen, die ebenfalls mit JavaScript definiert werden.
Auf der Dokumentationsseite JavaScript-Ausdrücke in QML-Dokumenten finden Sie weitere Informationen zur Verwendung von JavaScript-Ausdrücken in QML.
Dynamische QML-Objekterstellung aus JavaScript
QML unterstützt die dynamische Erstellung von Objekten aus JavaScript heraus. Dies ist nützlich, um die Instanziierung von Objekten bis zur Notwendigkeit zu verzögern und so die Startzeit der Anwendung zu verbessern. Außerdem können visuelle Objekte dynamisch erstellt und der Szene als Reaktion auf Benutzereingaben oder andere Ereignisse hinzugefügt werden. Diese Funktionalität kann auf zwei Arten genutzt werden.
Mit der dynamischen Objekterzeugung können Objekte dynamisch und zwingend aus JavaScript erstellt werden. Dies kann z. B. nützlich sein, wenn QML als Anwendungsskriptsprache verwendet wird.
Hinweis: Bei der Erstellung von Benutzeroberflächen sollten bevorzugt deklarative Konstrukte zur dynamischen Erstellung von Objekten verwendet werden, da sich diese am besten in die QML-Engine und -Werkzeuge integrieren lassen. Es gibt verschiedene Typen, die diese Funktionalität ermöglichen, wie z. B. die Typen Loader, Instantiator, Repeater.
JavaScript-Ressourcen
Die in JavaScript-Funktionen definierte Anwendungslogik kann in separate JavaScript-Dateien aufgeteilt werden, die als JavaScript-Ressourcen bezeichnet werden. Es gibt verschiedene Arten von JavaScript-Ressourcen, die sich in ihrer Semantik unterscheiden.
Weitere Informationen zur Definition von JavaScript-Ressourcen für QML finden Sie auf der Dokumentationsseite Defining JavaScript Resources In QML.
JavaScript-Importe
Ein QML-Dokument kann JavaScript-Ressourcen importieren, und JavaScript-Ressourcen können sowohl andere JavaScript-Ressourcen als auch QML-Module importieren. Auf diese Weise kann ein Anwendungsentwickler die Anwendungslogik in modularen, in sich abgeschlossenen Dateien bereitstellen.
Weitere Informationen zum Import von JavaScript-Ressourcen und zur Verwendung der von ihnen bereitgestellten Funktionen finden Sie auf der Dokumentationsseite Import von JavaScript-Ressourcen.
JavaScript-Host-Umgebung
Die QML-Engine bietet eine JavaScript-Umgebung, die sich in einigen Punkten von der JavaScript-Umgebung eines Webbrowsers unterscheidet. Bestimmte Einschränkungen gelten für Code, der in der Umgebung ausgeführt wird, und die QML-Engine bietet verschiedene Objekte im Root-Kontext, die JavaScript-Entwicklern möglicherweise nicht vertraut sind.
Diese Einschränkungen und Erweiterungen sind in der Beschreibung der von der QML-Engine bereitgestellten JavaScript-Host-Umgebung dokumentiert.
Dort wird auch die Speicherverwaltung der JavaScript-Engine ausführlich beschrieben.
Konfigurieren der JavaScript-Engine
Für bestimmte Anwendungsfälle können Sie einige der Parameter, die die JavaScript-Engine für die Speicherverwaltung und die Kompilierung von JavaScript verwendet, außer Kraft setzen. Weitere Informationen zu diesen Parametern finden Sie unter Konfigurieren der JavaScript-Engine.
© 2025 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.