关于QT中evaluateJavaScript()函数返回值的处理问题
关于QT中evaluateJavaScript()函数返回值的处理问题 - 寒风问雪的专栏 - 博客频道 - CSDN.NET
关于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()将其转换为字符型。
关于QT中evaluateJavaScript()函数返回值的处理问题的更多相关文章
- javascript中的函数返回值(return)
有些情况,我们希望获取到函数的执行结果,也就是我们需要在函数以外的地方处理执行结果,而不是在函数内部处理.这时我们就需要为函数设一个返回值,也就是return,即函数执行完毕以后返回的结果. 若在函数 ...
- 获得函数返回值类型、参数tuple、成员函数指针中的对象类型
//function_traits.h,获得函数返回值类型.参数tuple.成员函数指针中的对象类型 //参考https://github.com/qicosmos/cosmos/blob/maste ...
- jQuery中ajax如何返回值到上层函数
jQuery中ajax如何返回值到上层函数 一.总结 一句话总结: ajax的同步操作即可,设置 async: false, 二.jquery的同步操作 var can_submit=true; $. ...
- C语言:将3*4矩阵中找出行最大,列最小的那个元素。-将低于平均值的人数作为函数返回值,将低于平均分的分数放入below数组中。
//将3*4矩阵中找出行最大,列最小的那个元素. #include <stdio.h> #define M 3 #define N 4 void fun(int (*a)[N]) { ,j ...
- C++函数返回值发生的对象复制
最近用QT做一个监控系统的项目,需要显示目标的运动轨迹,每次目标移动后,就在目标的轨迹中(用vector记录)添加一条新轨迹. 但是在运行中画面里一直不出现轨迹,经过调试发现是记录轨迹的函数出错了. ...
- shell调用函数返回值深入分析
编写shell脚本过程中,我们经常会自定义一些函数,并根据函数的返回值不同来执行相应的流程,那么我们如何来获取函数的返回值呢? 首先shell中调用函数有两种方式: 第一种:value=`functi ...
- Python从线程获取函数返回值
Python中利用强大的threading模块可以很容易的实现多线程开发,提高运行速度.这一般是对某个进行大量计算操作的的函数进行多线程处理,然后合并各线程的结果.获取函数返回值的方法可以如下: 1) ...
- string类find函数返回值判定
string类find函数返回值判定 代码示例 #include<iostream> #include<cstring> using namespace std; int m ...
- c语言main函数返回值、参数详解(返回值是必须的,0表示正常退出)
C语言Main函数返回值 main函数的返回值,用于说明程序的退出状态.如果返回0,则代表程序正常退出:返回其它数字的含义则由系统决定.通常,返回非零代表程序异常退出. 很多人甚至市面上的一些书籍,都 ...
随机推荐
- Unity3D嵌入WPF教程
Unity3D嵌入WPF教程 创建一个 类库工程 添加 WindowForm 用户控件 (UserControl) 1).引入 UntiyWebPlayer COM 组件 在工具->选择工具箱中 ...
- org.apache.solr.client.solrj.impl.HttpSolrServer$RemoteSolrException: Internal Server Error 错误
Solr报错: { "responseHeader": { "status": 500, "QTime": 11 }, "erro ...
- CloseHandle(),TerminateThread(),ExitThread()的区别
线程的handle用处:线程的handle是指向“线程的内核对象”的,而不是指向线程本身.每个内核对象只是内核分配的一个内存块,并且只能由内核访问.该内存块是一种数据结构,它的成员负责维护对象的各种信 ...
- C - Wooden Sticks
C - Wooden Sticks Time Limit:1000MS Memory Limit:32768KB 64bit IO Format:%I64d & %I64u S ...
- Android Listview切换动画,扩展到任意view切换之间动画实现
添加布局如下: <?xml version="1.0" encoding="utf-8"?> <!-- Copyright (C) 2010 ...
- 0622 python 基础05
使用双重for循环,打印 0~100 # -*- coding: utf-8 -*- # D:\python\test.py def printOneToHundred(): for i in ...
- Linux 组与用户
组: 添加: groupadd groupName -g groupID --> groupadd dba -g 502 删除: groupdel groupName ...
- C# WinForm判断Win7下是否是管理员身份运行
原文:C# WinForm判断Win7下是否是管理员身份运行 如果程序不是以管理员身份运行,操作本地文件会提示:System.UnauthorizedAccessException异常 Vista 和 ...
- mysql 主从实现
主库:192.168.1.19 从库:192.168.1.20 开启db_test单库复制 常见问题 参考文档 主配置 以mysql root用户登录,用下面sql创建专门用于主从复制的mysql用 ...
- Android利用Fiddler进行网络数据抓包,手机抓包工具汇总
Fiddler抓包工具 Fiddler抓包工具很好用的,它可以干嘛用呢,举个简单例子,当你浏览网页时,网页中有段视频非常好,但网站又不提供下载,用迅雷下载你又找不到下载地址,这个时候,Fiddler抓 ...