- 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