【发布时间】:2016-04-06 15:49:34
【问题描述】:
我在从 QML 读取 javascript 变量时遇到问题。我知道这看起来很容易,但这是一个特例:
我正在使用 canvas3D 生成大量 3D 球体,并且由于实例很长,我想显示一个进度条。
为此,我已经这样做了:
import "test6.js" as GLCode
Item {
id: mainview
width: 1280
height: 768
visible: true
// THE PROGRESS BAR
ProgressBar {
id : progressBar
anchors.centerIn: parent
value: canvas3d.progress
z:1
}
//THE CANVAS3D (WebGL)
Canvas3D {
id: canvas3d
anchors.fill: parent
focus: true
property double progress:0 //MY VARIABLE I WANT TO UPDATE FROM test6.js
property var list : []
// Emitted when one time initializations should happen
onInitializeGL: {
GLCode.initializeGL(canvas3d);
}
我的 canvas3d 中有一个属性名称 progress,我正在尝试从 test6.js 脚本修改它
在 initializeGL(canvas3d) 函数中,我每次添加球体时都会更新进度值:
for ( i = 0; i < spheresNum; i ++ ) {
var x = list[i][0];
var y = list[i][1];
var z = list[i][2];
drawSphere(x,y,z,i);
canvas3d.progress = i/spheresNum*100;
}
现在,问题是我只有在 initializeGL() 结束时才能获得更新的进度值。现在是这样的:
Progress Bar to 0%
(Waiting for all the sphere to be instanciated)
(initializeGL() ends)
Progress Bar to 100%
这是没用的。我希望每次创建球体时让条形图移动。
你知道我该怎么做吗?
【问题讨论】:
标签: javascript qt qml