如何从 QML 获取 QVector<qint16> 元素?

How to get QVector<qint16> element from QML?

在我的 class 参数中,我创建了以下 q属性:

Q_PROPERTY(QVector <qint16> tmrAndCont READ tmrAndCont WRITE setTmrAndCont NOTIFY tmrAndContChanged)

我已经为 getread 属性 创建了相关方法。 现在我有一个包含 43 个元素的 QVector。

所以我的问题是:我可以从 QML 访问我的 QVector 的元素吗?

在 main.cpp 中,我声明了 class 并使用 engine.rootContext 将其显示给 QML。

Parameters::m_parameters = new Parameters();
engine.rootContext()->setContextProperty("parameters",Parameters::m_parameters);

QML 没有 16 位整数的概念。我建议不要直接将向量公开为上下文 属性,而是将其包装在 QObject 派生的 class 中,它提供大小、get 和 set 方法以及从常规 [=11 到常规 [=11] 的隐蔽=] 当您访问数据时,并公开它。

请注意,QML 会将 QVector<int> 隐式转换为 JS 数组,但一方面,我没有测试这是否适用于较短的整数,其次,这将是转换,这意味着你不会