關於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