【发布时间】:2019-02-06 16:24:01
【问题描述】:
我想动态创建一个 QML WorkerScript 对象,并在我的 JavaScript 代码中读取其函数的输出。这是我在 QML 文件中尝试的内容:
import QtQuick 2.0
Rectangle {
id: root
width: 200
height: 300
Component.onCompleted: {
var worker = Qt.createQmlObject('import QtQuick 2.0; WorkerScript { source: "dataloader.js"; }', root)
worker.sendMessage();
worker.message.connect(function (msg) { console.log(msg); });
}
}
这里是 dataloader.js 文件的来源:
WorkerScript.onMessage = function(msg) {
WorkerScript.sendMessage('test');
}
我希望代码将“test”输出到控制台,但它会输出“QVariant(QQmlV4Handle)”。我在 Qt 站点(http://doc.qt.io/qt-5/qml-workerscript.html 和 http://doc.qt.io/qt-5/qtquick-threading-example.html#workerscript)上的一些示例中看到,有一个 messageObject 属性,但是当我尝试使用 worker.messageObject 访问它时,似乎无法从连接函数访问它。谁能在这里指出我正确的方向?
【问题讨论】:
标签: qml