美文网首页
QT中怎么把一个数组传给JavaScript

QT中怎么把一个数组传给JavaScript

作者: Zliang_hhh | 来源:发表于2017-12-25 22:10 被阅读449次

写在前面
欢迎访问我的博客

  1. 假设你已经知道了如何让Qt与javascript通信,如果布吉岛,请移步Qt与Javascript的通信机制
  2. 其实有两种方法,我都试过。第一种是一次传一个数据,传个n次,就可以传完,但是效率很低。第二种是一次性传完,不仅效率高,而且还爽。

数据整合

假设有一个数组,double类型的,要把它放到一个QString中,并且传给JS。在mainwindow.cpp中修改槽函数:

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++)                            //将数组传入压入num_json
    {
        num_json.append(num[i]);
    }

    num_document.setArray(num_json);
    num_byteArray = num_document.toJson(QJsonDocument::Compact);
    QString numJson(num_byteArray);             //再转为QString


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

}

格式转换

  1. yanshi.html中加入
function showarray(numlist)                 //仅把qt传来的数组转换成可用的list
{
    alert(numlist);
    var num_list;                           //以下为格式转换,分割成可用的数组
    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. 格式能不能转换呢?


    点击ok之后

    说明成功了


可能有不正确的地方,敬请谅解,如果觉得对您有所帮助,请打赏一下呗,谢谢~
码字不易,转载请注明地址

相关文章

  • QT中怎么把一个数组传给JavaScript

    写在前面欢迎访问我的博客 假设你已经知道了如何让Qt与javascript通信,如果布吉岛,请移步Qt与Javas...

  • FreeCodeCamp学习笔记

    (一)JavaScript知识点 对象 arguments 是一个类数组对象,代表传给一个function的参数...

  • array_filter()、array_map()、array

    array_filter()  该函数把输入数组中的每个键值传给回调函数。如果回调函数返回 true,则把输入数组...

  • 06-JavaScript数组和函数

    JavaScript数组 JavaScript中的数组可以存储不同类型的数据 JavaScript中的数组是引用类...

  • js基础之数组方法

    JavaScript 数组的力量隐藏在数组方法中。 把数组转换为字符串 toString() JavaScrip...

  • js获取数组长度 对象成员个数 字符串字数

    Javascript怎么得到数组长度(也就是数组的元素个数)? Javascript怎么获取对象的成员个数? 你肯...

  • ‘sizeof’ on array function param

    Code: ERROR: Cause: 原因是数组作为参数传给函数时,是传给数组的地址,而不是传给整个的数组空间,...

  • JavaScript数组与函数

    数组 JavaScript中的数组和C语言中的数组一样, 都是用于存储一组数据的 JavaScript中的数组可以...

  • Vue性能优化

    为静态的data加上Object.freeze() 当你把一个普通的 JavaScript 对象传给 Vue 实例...

  • per-course数组

    数组是数据的有序列表。JavaScript中,数组中的每一项可以保存任何类型的数据JavaScript中,数组的长...

网友评论

      本文标题:QT中怎么把一个数组传给JavaScript

      本文链接:https://www.haomeiwen.com/subject/ogprgxtx.html