使用Javascript的Concat QML属性

使用Javascript的Concat QML属性,javascript,qt,qml,Javascript,Qt,Qml,我正在使用java脚本设置QML项目的属性,其中gaugetext是我的QML对象的属性 function finishCreation(setWidth,setHeight,setX,setY,setMinValue,setMaxValue,setDecPlace,setUnit,setID,SetValueObject,SetValueProperty) { ... "gaugetext": Qt.binding(function(){return SetVa

我正在使用java脚本设置QML项目的属性,其中gaugetext是我的QML对象的属性

    function finishCreation(setWidth,setHeight,setX,setY,setMinValue,setMaxValue,setDecPlace,setUnit,setID,SetValueObject,SetValueProperty) {
    ...
        "gaugetext": Qt.binding(function(){return SetValueObject[SetValueProperty] +  " " + setUnit})
....
}
这很好,但我想设置小数的数量。所以我试了一下:

"gaugetext": Qt.binding(function(){return "(" + SetValueObject[SetValueProperty]+ ")" + ".toFixed(" + setDecPlace + ")" + " " + setUnit})
但这会导致正确的值显示为.toFixedvalue

返回一个字符串。toFixed

您可能希望省略一些代码,因为您可能希望将标记为字符串的代码段改为执行

return SetValueObject[SetValueProperty].toFixed(setDecPlace) + " " + setUnit
未经测试


但是,使用finalize创建函数很可能是一种不好的方法。

两个问题。第一:你想获得什么?第二:出于好奇,为什么要尝试用JS来实现这一点?我正在为汽车仪表板软件在运行时创建qml对象。仪表板必须是动态的,因此用户可以在运行时创建仪表。它正在工作,我只是对toFixed函数有问题。我认为JS是在运行时创建对象的最佳解决方案。我也尝试了这一点,但它在控制台中返回TypeError:当SetValueObject[SetValueProperty]未定义时,无法调用undefined的“toFixed”方法。SetValueProperty似乎不是有效的键。