赞
踩
QML WorkerScript Element
The WorkerScript element enables the use of threads in QML
source : url
Signals : onMessage
Methods : sendMessage
Detailed Description
Use WorkerScript to run operations in a new thread. This is useful for running operations in the background so that the main GUI thread is not blocked.
Messages can be passed between the new thread and the parent thread using sendMessage() and the onMessage() handler.
WorkerScript 用于生成新的线程,并通过消息进行通信。
qml文件中声明 WorkerScript { id: worker; source: "dataloader.js" } id和js文件路径。这样qml中就可以通过worker.sendMessage(msg);发送消息(msg是qml中定义的一var变量),js中总是这样定义WorkerScript.onMessage = function(msg)函数,其中msg可以含有worker msg中的多个变量或属性。同样js中也可以通过WorkerScript.sendMessage({src:src,data:jresult});向qml发送消息,其中qml中onMessage负责接收。
另外注意:
WorkerScript线程内没有全局变量,因此下面这样用法会在msg.model.append(string );造成线程的崩溃
var string = "Time:";
WorkerScript.onMessage = function(fmUrl) {
if (msg.action == 'appendCurrentTime') {
var data = {'time': new Date().toTimeString()};
msg.model.append(string );
msg.model.append(data);
msg.model.sync(); // updates the changes to the list
}
}
赞
踩
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。