首页 > 解决方案 > 启动新屏幕时 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++qtqmlqt-quick

解决方案


实际上,在我提交的一个不相关的问题中,我做了类似的事情。请参阅此演示应用程序以将 c++ 数据公开给 qml 以绘制图表

我选择的方法是在 main.cpp中公开我的 C++ 类图表数据。setContextProperty("chartdata",chartdata)然后可以使用信号从 QML 调用生成数据的 C++ 函数chartdata.generateData()


推荐阅读