关于QT中evaluateJavaScript()函数返回值的处理问题

                                     关于QT中evaluateJavaScript()函数返回值的处理问题 

by 寒风问雪

 

在QT中我们可以通过evaluateJavaScript()函数很方便的执行js语句,evaluatejavascript()函数返回的是js脚本文件的最后一行执行的结果,这个结果可以一个字符,数值,也可以是一个数组,甚至是一个js对象。返回的结果保存在QVariant中。通过实验对于单个变量,QVariant可以很好地处理,也可以很方便转换为其他类型,但实际中我们返回的有可能是一个数组,在js中,数组也是一个特殊的对象,对于数组,QVariant就不能很好的处理了。

我采用以下技巧解决了这个问题

首先利用QVariant中的成员函数type()可以得到返回的js数组在QVariant中是一个什么类型的数据,经过调试发现,是一个QVariantLIst型。这样就好办了,我们只需定义一个QVariantList对象来保存就行了。可以使用QVariant中的toLIst()函数将返回的js数组转换成QVariantLIst型。但在调用QVarianList中的元素是要先进行非空测试if(!qvlist.isEmpty()),如果是空值,程序将会出错。之后便可用qvlist.tostring()将其转换为字符型。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值