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


关于QT中evaluateJavaScript()函数返回值的处理问题 - 寒风问雪的专栏 - 博客频道 - CSDN.NET

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

分类: QT 851人阅读 评论(0) 收藏 举报

                                     关于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()将其转换为字符型。


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM