You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

QML对象创建时JS设置数值属性出现NaN问题求助

解决QML动态创建对象时数值属性显示NaN的问题

我之前也踩过一模一样的坑!这种情况90%都是类型不匹配搞的鬼——你JS里打印的300看起来是数字,但实际可能是字符串类型,QML的数值属性对类型要求很严格,字符串转数字失败就会变成NaN。

先排查问题根源

先在JS里打印这个值的类型,确认是不是字符串:

console.log(typeof yourValue); // 如果输出是"string",那就是类型问题

为什么console.log显示300却不是数字?比如你可能是从用户输入、配置文件或者字符串拼接里拿到的这个值(比如从"300 MAP"里提取的部分),表面看是数字,但实际是字符串类型。

解决方案:显式转换为数值类型

把赋值的代码改成显式转成Number类型再赋值就行:

// 方法1:用Number()转换(支持整数和浮点数)
newObject.gaugemaxvalue = Number(yourValue);

// 方法2:如果是整数,用parseInt更稳妥(第二个参数10是指定十进制)
newObject.gaugemaxvalue = parseInt(yourValue, 10);

// 如果值里可能带空格,先trim再转
newObject.gaugemaxvalue = parseInt(yourValue.trim(), 10);

额外检查点

还要确认QML里的属性定义是数值类型:

// 确保原始属性是int/real,而不是string/var
property real gaugeMaxValue: 0
property alias gaugemaxvalue: gaugeMaxValue

这样处理后,QML里的gaugemaxvalue就不会再是NaN啦!

内容的提问来源于stack exchange,提问作者Basti An

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.19 10:09:02