我对QML很新。根据{{3}}的QML文档,Text对象应该显示15,但它只输出5.任何人都可以帮助我吗?
Text {
id: counter
x: 300;
y: 300;
property int a: 5;
function randNumber(a){
var a = a+10;
return a;
}
text: a;
}
答案 0 :(得分:2)
您的函数中的a
是函数的本地函数,因为您使用var
开头。相反,做到:
function randNumber(a){
a = a+10;
return a;
}
答案 1 :(得分:1)
您实际上从未调用过randNumber
函数,因此无效。如果您想将text
设置为randNumber(a)
的结果,那么您应该text: randNumber(a)
。或者没有定义函数:
text : {
var a = a+10;
return a;
}
如果您移除var
,则a
属性也将设置为15(仅上述代码text
将设置为15并且a
将保留5)。
答案 2 :(得分:0)
既不将其作为参数传递给函数,也不使用randNumber
在var
函数中创建新变量。只需使用a
即可。它应该在函数中可用,因为函数在Text
QML组件内部。
这不起作用,因为您没有在程序中的任何位置调用该函数。我假设你想在启动时调用它(技术上是在加载Text组件时)。所以你可以在Component.onCompleted
函数上调用它。
Text {
id: counter
anchors.centerIn: parent
property int a: 5;
function randNumber(){
a = a+10;
return a;
}
text: a;
Component.onCompleted: randNumber();
}
请查看此documentation以获取更多示例。