使用Javascript的Concat QML属性
我正在使用java脚本设置QML项目的属性,其中gaugetext是我的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
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似乎不是有效的键。