Im Rahmen eines QML-Projekts ist es möglich, JavaScript-Dateien nicht nur in QML-Dateien, sondern auch in andere JavaScript-Dateien einzubinden. In diesem Fall ähnelt die Syntax zum Verbinden dieser Dateien der in QML-Dateien verwendeten.
Zum Beispiel die Option, eine JavaScript-Datei in eine QML-Datei aufzunehmen
import "first.js" as FirstJs
Während sich das Verbinden einer JavaScript-Datei mit einer anderen JavaScript-Datei nur durch das Vorhandensein eines Punktes vor dieser Zeile unterscheidet
.import "first.js" as FirstJs
Beispiel
Wir erhalten ein kleines Projekt mit den folgenden Dateien
- main.qml
- first.js
- zweite.js
Die Aufgabe ist folgende, füge first.js in main.qml ein und rufe eine Funktion aus dieser JavaScript-Datei auf, in der die Funktion aus second.js aufgerufen wird, die sein wird in der Datei first.js enthalten.
main.qml
import QtQuick 2.7 import QtQuick.Controls 2.0 import QtQuick.Layouts 1.3 import "first.js" as FirstJs // Подключение first.js ApplicationWindow { visible: true width: 640 height: 480 title: qsTr("Hello World") Button { anchors.centerIn: parent text: qsTr("Click Me") // По клику кнопки вызовем функцию из first.js файла onClicked: FirstJs.func() } }
second.js
Diese Datei hat nur eine Funktion zur Ausgabe des Strings Second. an die Konsole, die in der Datei first.js aufgerufen werden muss.
.pragma library function func() { console.log("Second") }
first.js
.pragma library .import "second.js" as Second // Подключение second.js function func() { console.log("First") Second.func() // Вызов функции из файла second.js }
Fazit
Als Ergebnis wird beim Klicken auf die Schaltfläche die Funktion aus der Datei first.js aufgerufen, die ihre Meldung an die Konsole ausgibt und die Funktion aus der Datei second.js aufruft.
Die folgende Meldung wird auf der Konsole ausgegeben
qml: First qml: Second