作者: 一去、二三里
个人微信号: iwaleon
微信公众号: 高效程序员
当加载一个 QML 对象到一个 C++ 应用程序中时,直接嵌入可以从 QML 代码中使用的一些 C++ 数据是非常有用的。例如,对嵌入的对象调用一个 C++ 函数,或者使用一个 C++ 对象实例作为 QML 视图的数据模型。
通过 QQmlContext 类可以将 C++ 数据注入到 QML 对象中。该类将数据暴露给一个 QML 对象的上下文,以便可以直接从 QML 代码中引用数据。
QQmlContext
QQmlContext 类定义了 QML 引擎内的上下文,上下文允许将数据暴露给由 QML 引擎实例化的 QML 组件。
每个 QQmlContext 包含一组属性,允许以名称将数据显式地绑定到上下文。通过调用 QQmlContext::setContextProperty() 来定义和更新上下文属性。
相应的接口:
void QQmlContext::setContextProperty(const QString &name, const QVariant &value)