QT中怎么把一個數(shù)組傳給JavaScript

寫在前面
歡迎訪問我的博客

  1. 假設(shè)你已經(jīng)知道了如何讓Qt與javascript通信,如果布吉島,請移步Qt與Javascript的通信機制
  2. 其實有兩種方法,我都試過。第一種是一次傳一個數(shù)據(jù),傳個n次,就可以傳完,但是效率很低。第二種是一次性傳完,不僅效率高,而且還爽。

數(shù)據(jù)整合

假設(shè)有一個數(shù)組,double類型的,要把它放到一個QString中,并且傳給JS。在mainwindow.cpp中修改槽函數(shù):

void MainWindow::on_pushButton_clicked()
{
    QJsonArray num_json ;                       //聲明QJsonArray
    QJsonDocument num_document;    //將QJsonArray改為QJsonDocument類
    QByteArray num_byteArray;      //

    double num[2]={114.12,114.13};
    int i=0;
    for(i=0;i<2;i++)                            //將數(shù)組傳入壓入num_json
    {
        num_json.append(num[i]);
    }

    num_document.setArray(num_json);
    num_byteArray = num_document.toJson(QJsonDocument::Compact);
    QString numJson(num_byteArray);             //再轉(zhuǎn)為QString


    qDebug() << numJson;
    QWebFrame *webFrame = ui->webView->page()->mainFrame();
    QString cmd = QString("showarray(\"%1\")").arg(numJson);
    webFrame->evaluateJavaScript(cmd);          //傳給javascript

}

格式轉(zhuǎn)換

  1. yanshi.html中加入
function showarray(numlist)                 //僅把qt傳來的數(shù)組轉(zhuǎn)換成可用的list
{
    alert(numlist);
    var num_list;                           //以下為格式轉(zhuǎn)換,分割成可用的數(shù)組
    num_list = numlist.substring(1,numlist.length-1);
    num_list = num_list.split(",");
    alert("the num_list is: "+num_list[0]+" "+num_list[1]);

}
  1. 可以看看QT傳遞給js的是什么


    控制臺打印QString
  2. 再看看js接收了什么


    點擊pushbutton

    說明傳遞成功.

  3. 格式能不能轉(zhuǎn)換呢?


    點擊ok之后

    說明成功了


可能有不正確的地方,敬請諒解,如果覺得對您有所幫助,請打賞一下唄,謝謝~
碼字不易,轉(zhuǎn)載請注明地址

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容