c++ - 启动新屏幕时 QT Quick 从 C++ 向 QML 发送数据
问题描述
我是 QT Quick 和 QML 的新手。
我正在使用 QT Quick QML 和 C++ for Linux 构建一个应用程序。
我正在使用 StackView 在 QML 页面和注册为的 C++ 类之间导航qmlregistertype
,这些类是从 QML 访问以获取状态和数据。
我想要的是,
每次启动新屏幕时,我都想从云服务器获取一些状态/数据,然后使用从云服务器接收到的最新状态/数据更新 UI。是否可以将一些 JSON 字符串从 CPP 发送到 QML,然后 QML 解析这些数据并相应地更新 UI?如何在 C++ 和 QML 中实现这一点?会和信号槽一样吗?
解决方案
实际上,在我提交的一个不相关的问题中,我做了类似的事情。请参阅此演示应用程序以将 c++ 数据公开给 qml 以绘制图表
我选择的方法是在 main.cpp中公开我的 C++ 类图表数据。setContextProperty("chartdata",chartdata)
然后可以使用信号从 QML 调用生成数据的 C++ 函数chartdata.generateData()
推荐阅读
- javascript - 如何将两个函数应用于一个 li
- sql - GROUP BY ROLLUP 产生不必要的行
- protractor - In what circumstances would I need to use Protractor ExpectedConditions to wait for an element
- spring-boot - 从 2.0.6 升级到 Spring Boot 2.1.2 会导致存储库错误
- unix - socat - 如何保存发件人信息
- regex - HiveQL:解析字符串和计数
- database - 我怎样才能自动化这个任务?(放射治疗的自动轮廓)
- c99 - 关于调用 vkCmdBindVertexBuffers() 时顶点缓冲区数据的内存对齐偏移倍数的问题
- google-cloud-dataflow - 无法使用 Dataflow REST API 传递作业参数
- java - 如何禁用“RMI TCP 连接”日志记录?