我可以在WorkerScript函数中使用Qt.createComponent()吗?

时间:2011-11-04 11:08:11

标签: javascript qt qml

我是Qt快速应用程序的新手。 (QML)

我想创建动态图像表(比如在Samegame示例中),但它使用线程通过使用workerScript进行实时创建。

如何通过Qt函数使用WorkerScript可以在新线程和父线程之间传递?或者可以在javascript中导入Qt func?

例如

// 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 个答案:

答案 0 :(得分:1)

无法在线程中创建组件。如果只是加载图像的成本是问题,可以通过设置异步在后台加载它们:true