2014-12-04 53 views
1

在C++文件中,我有一个类型为QList<QStringList>*的对象,它应该是一个二维字符串数组。
将复杂的C++ Qt对象暴露给QML

目前,在C++中,我能够做到这一点:

// this will display the QString value in the Console, 
// where entries is of type QList<QStringList>* 
qDebug() << "test: " << entries->at(0).at(0); 

我知道如何公开此对象QML,不过为什么我将能够浏览/访问其功能QML?

main.qml,我可以调用返回此对象的功能:

_app.getCalendar() 

但我怎么可以浏览它,就像在C++代码,上面?

编辑:我真的需要做的是发送一个二维字符串数组从C++到QML。我是以一种过于复杂的方式来做这件事吗?是否有另一种方法来完成这个?

+1

你到底做的,到底是什么?这里有问题吗? – MrEricSir 2014-12-04 18:22:56

+0

我的问题是:如何在QML中导航这个二维数组? – DrKaoliN 2014-12-04 18:25:36

+0

可以[这些](http://stackoverflow.com/questions/14287252/accessing-c-qlists-from-qml)答案帮助你? – BaCaRoZzo 2014-12-04 18:56:31

回答

6

在您接触QML的类中定义一个INVOKABLE getter函数。

头:

class MyQmlClass : QObject 
{ 
    Q_OBJECT 

public: 
    // ... 

    Q_INVOKABLE QString getString(int y, int y); 


    // ... 
} 

,并在.cpp文件中的广告实现它如下:

QString MyQmlClass::getString(int x, int y) 
{ 
    return entries->at(x).at(y); 
} 

最后在QML:

_app.getCalendar().getString(3, 4) 
+0

非常感谢您的回答! :) – DrKaoliN 2014-12-04 20:54:09