QML中的基本Javascript /数学...为什么不起作用?

时间:2011-11-04 22:19:18

标签: javascript math qml

我对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;
}

3 个答案:

答案 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)

既不将其作为参数传递给函数,也不使用randNumbervar函数中创建新变量。只需使用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以获取更多示例。