某些 C++ 序列类型在 QML 中被显式地作为 JavaScript 数组类型支持。
QML当前支持如下类型:QList
QList
QList
QList and QStringList
QList
这些序列类型都直接在底层的 C++ 程序来实现的。有两种方法可以把这样的序列类型在 QML 和 C++ 之间相互暴露:使用 Q_PROPERTY 修饰序列类型或使用 Q_INVOKABLE 方法。
下面的方法演示从 QML 中传递如何传递一维数组和二维数组到 C++ 中。创建一个 AppModel 类,这个模型作为应用程序的数据模型,在 QML 和 C++ 之间交互。class AppModel : public QObject
{
Q_OBJECT
public:
explicit AppModel(QObject *parent = 0);
...
};
使用 qmlRegisterType() 函数把 AppModel 暴露到 QML UI 层(需在QML文件加载前注册)。#include
#include
#include
#include
int main(int argc, char *argv[])
{
QGuiApplication app(argc, argv);
qmlRegisterType("com.mycompany.qmlcomponents", 1, 0, "AppModel");
QQmlApplicationEngine engine;
engi