#javascript #qt #qml
#javascript #qt #qml
Вопрос:
Я новичок в приложении Qt quick. (QML)
Я хочу создать динамическую таблицу изображений (как в примере Samegame), но она использует поток для создания в реальном времени с помощью workerScript.
Как с помощью WorkerScript с помощью функции Qt можно передавать между новым потоком и родительским потоком? или можно импортировать Qt func в javascript?
пример
//main.qml импорт QtQuick 1.0
Rectangle {
width: 800; height: 600
WorkerScript {
id: myWorker
source: "script.js"
}
Item {
id: container
anchors.fill: parent
}
Component.onCompleted: myWorker.sendMessage({ 'container':container })
}
//script.js
WorkerScript.onMessage = function(message) {
// error occur in this below line with TypeError: Result of expression 'Qt.createComponent' [undefined] is not a function.
var component = Qt.createComponent("Imgbox.qml");
if (component.status == Component.Ready) {
var img = component.createObject(message.container);
}
}
//Imgbox.qml
import QtQuick 1.0
Image {
id: img
source: "./img.jpg"; clip: true
}
Спасибо.
Ответ №1:
Компоненты не могут быть созданы в потоке. Если проблема заключается только в стоимости загрузки изображения, вы можете загружать их в фоновом режиме, установив значение asynchronous: true