C++和QML之间传输JSON字符串并解析(适用于传数组或其他复杂参数)

2023-11-09

  QJsonObject转为QString,发送带此QString的信号,QML中接收到信号后直接用JSON进行解析(QML支持Javascript,自然也支持相应的json解析)。同理,可以在QML中将javascript对象先转换成json字符串,然后传给C++进行解析。这种方法可以用来传输比较复杂的数组参数,之前都是用的QVariantList和QVariantMap,感觉好不方便,所以在这里记录一下。

QFile loadFile("./test.txt");
if(!loadFile.open(QIODevice::ReadOnly))
{
    qDebug()<<"Could't open json data file!";
}
QByteArray allData = loadFile.readAll();
loadFile.close();

QJsonParseError json_error;

QJsonDocument jsonDoc(QJsonDocument::fromJson(allData, &json_error));

if(json_error.error != QJsonParseError::NoError)
{
    qDebug() << "Parse json error!";
        return;
}
callQmlLoadCali (QString(allData));//将Json格式标定数据以QString的形式传给QML界面,这里的callQmlLoadCali是一个带QString参数的信号,这里为了方便直接用了读取的数据,如果是QJsonObject的话也可先转成QJsonDocument,再转成QString

//其他操作

                
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

C++和QML之间传输JSON字符串并解析(适用于传数组或其他复杂参数) 的相关文章

随机推荐

  • 排序算法详解(堆,归并,快速排序最简及理解写法)

    十大排序算法和复杂度 常见排序的详解 只讲解真实场景中常用的 简单的就不分析了大家稍微看一下就行 快速排序 快排的思想主要就是每次把一个位置放好后 可以把数组分成两半 递归处理子问题即可 空间复杂度OlogN 分析 每次都分成两半处理子问题
  • IDEA报错程序包xxx不存在,但Depandencies依赖里明明有

    IDEA报错程序包xxx不存在 但依赖里明明有 看一下这个项目的pom xml 我这边引用的是公共依赖 应该是运行的时候依赖没有引用过来 搞了半天 网上搜了很多没搜到 后来我把 settings gt Runner 设置调了一下 就没有问题
  • CUDA之Warp Shuffle详解

    之前我们有介绍shared Memory对于提高性能的好处 在CC3 0以上 支持了shuffle指令 允许thread直接读其他thread的寄存器值 只要两个thread在 同一个warp中 这种比通过shared Memory进行th
  • Zabbix 学习(六) 自动发现功能与主动监控的实现

    一 自动发现 当被监控的设备非常多的时候 手工添加将会变得非常不方便 可以使用自动发现功能 实现添加主机 添加到主机组 链接模板 自动发现流程 创建自动发现规则 创建动作 当主机被发现之后 执行什么操作 通过动作 添加主机 将模板应用到发现
  • qt 实现翻金币游戏

    游戏玩法介绍 游戏设置关卡二十关 通过选关界面可以选择进入到对应的关卡中 进入对应关卡之后 点击任意金币 可以使该硬币以及周边 上 下 左 右 金边翻转 如果硬币都翻转为金币 则游戏胜利 游戏界面设置 开始界面 开始场景中需要自定义一个按钮
  • MyBatis实现简单的增删查改操作(XML配置)

    最近在跟着B站传智的课程学习SSM 先学的是MyBatis 写一篇博客记录一下如何利用MyBatis实现简单的增删查改 主要是记录一下实现过程 实现思路 注意事项 避坑 本教程使用XML配置进行实现 一 软件环境 Java IDEA mys
  • Windows下,Hexo+GitHub搭建博客

    一 注册GitHub账号 二 创建GitHub仓库 创建git仓库时候 仓库的名称有格式要求 例如我的GitHub仓库用户名是thinkerwalker 那么我创建的仓库名称就是thinkerwalker github io 此处的警告是因
  • 2D人体姿态估计 - Convolutional Pose Machines(CPM)

    https github com namedBen Convolutional Pose Machines Pytorch https github com timctho convolutional pose machines tenso
  • QFileDialog打开文件夹,获得文件名(getOpenFileName,getExistingDirectory)

    1 QFileDialog getOpenFileName 示例 括号里的参数分别是 指定父类窗口部件 对话框使用的标题 默认打开后显示的目录 即告诉它从哪一级目录开始 右下角的文件过滤器 QString file name QFileDi
  • MongoDB复制集数据是如何复制的

    MongoDB 复制集 MongoDB复制集的主要意义在于实现服务高可用 类似于Redis中的哨兵模式 它主要提供两个方面的功能 1 数据写入主节点 Primary 时将数据复制到另一个副本节 Secondary 点上 2 主节点发生故障时
  • Android UI 之居中绘制文本内容的正确方法——实现自定义一个TextView

    原文地址 http blog csdn net carrey1989 article details 10399727 我们在自定义一个控件的时候 有时候会需要自己来绘制一些文本内容 这样就自然而然遇到确定文本的方位的问题 比如文本需要水平
  • 蓝桥杯-最少砝码(2021题)

    问题描述 你有一架天平 现在你要设计一套砝码 使得利用这些砝码可以称出任意 小于等于 NN 的正整数重量 那么这套砝码最少需要包含多少个砝码 注意砝码可以放在天平两边 输入格式 输入包含一个正整数 N 输出格式 输出一个整数代表答案 样例输
  • Java实现Excel导入导出操作详解

    前言 本次封装是基于 POI 的二次开发 最终使用只需要调用一个工具类中的方法 就能满足业务中绝大部门的导入和导出需求 1 功能测试 1 1 测试准备 在做测试前 我们需要將 2 环境准备 中的四个文件拷贝在工程里 如 我这里均放在了com
  • AD20笔记-PCB设计

    AD20笔记 文章目录 AD20笔记 PCB设计 新建PCB 导入原理图元器件 估计板子的大小 隐藏网络 机械层绘制放置区域 设置原点 设置板子大小 层叠管理器 正片负片 模块化分布 导入DXF文件 单独查看某一层 相连走线选择 精准移位吸
  • 解析隐式类型转换操作operator double() const,带你了解隐式转换危害有多大

    目录 前言 隐式类型转换操作符 使用注意 解决方案 深思 构造函数造成的隐式转换 分析 总结 解决方案 explicit关键字 引入Proxy classes 代理类 总结 前言 我首次看到这种函数的时候是在Flightgear飞行模拟器的
  • scatter绘制散点图示例

    scatter绘制散点图示例 1 example 1 from sklearn import datasets digits datasets load digits import matplotlib pyplot as plt colo
  • Pytorch学习(6) —— 加载模型部分参数的用法

    上一节 我们给出了模型加载和保存的简要示例 但是 我们有时候会用别人的参数 他们的层参数名和我们的名称很容易不同 因此这里将会对源码进入深入剖析 分析参数提取和保存是如何实现的 我们使用pytorch的VGG16预训练模型 加载 返回其类型
  • 【云原生之kubernetes】helm在k8s集群中的基本使用

    云原生之kubernetes helm在k8s集群中的基本使用 一 检查kubernetes环境 1 检查kubernetes节点状态 2 检查helm状态 二 helm的V2版本和V3版本区别 1 主要区别 2 版本架构的变化 3 V3版
  • STM32写的PID算法温度控制程序示例

    使用STM32写的PID算法温度控制程序示例 该程序通过读取温度传感器的数据 并采用PID控制算法 输出PWM信号来控制加热器的工作 以实现温度的稳定控制 include stm32f10x h define TIM PERIOD Syst
  • C++和QML之间传输JSON字符串并解析(适用于传数组或其他复杂参数)

    QJsonObject转为QString 发送带此QString的信号 QML中接收到信号后直接用JSON进行解析 QML支持Javascript 自然也支持相应的json解析 同理 可以在QML中将javascript对象先转换成json