- 1. Пример
- 2. Заключение
В рамках проекта на QML имеется возможность не только подключать JavaScript файлы в QML файлах, но и в других JavaScript файлах. При этом синтаксис подключения этих файлов будет аналогичен тому, что используется в QML файлах.
Например, вариант подключения JavaScript файла в QML файле
import "first.js" as FirstJs
Тогда, как подключение JavaScript файла в другом JavaScript файле будет отличаться лишь наличием точки перед этой строкой
.import "first.js" as FirstJs
Пример
Нам дан небольшой проект, в котором есть следующие файлы
- main.qml
- first.js
- second.js
Задача следующая, подключить first.js в main.qml и вызвать функцию из этого JavaScript файла, в которой будет вызываться функция из second.js , который будет подключён в файле first.js .
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
Данный файл имеет лишь функцию для вывода в консоль строки Second. Эту функцию нужно будет вызвать в first.js файле.
.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 }
Заключение
В результате при нажатии кнопки будет вызвана функция из файла first.js , которая выведет в консоль своё сообщение и вызовет функцию из файла second.js .
В консоль будет выведено следующее сообщение
qml: First qml: Second