2014-12-04 9 views
1

C++ 파일에서 2 차원 문자열 배열로 간주되는 QList<QStringList>* 유형의 객체가 있습니다.복잡한 C++ Qt 객체를 QML에 노출

// 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에서 액세스 탐색 할 수있을 것입니다 :

현재, C++에서 나는이 작업을 수행 할 수 있어요?

_app.getCalendar() 

하지만 내가 위의 C++ 코드에서처럼 그것을하는 방법을 탐색 할 수 있습니다 : main.qml에서

,이 객체를 반환하는 함수를 호출 할 수 있습니다?

편집 : 실제로해야 할 일은 C++에서 QML로 2 차원 문자열 배열을 보내는 것입니다. 지나치게 복잡한 방식으로이 일을하고 있습니까? 이것을 성취하는 다른 방법이 있습니까?

+1

당신이 뭘 하려는지 정확히? 여기에 질문이 있습니까? – MrEricSir

+0

내 질문은 :이 2 차원 배열에서 QML로 어떻게 탐색 할 수 있습니까? – DrKaoliN

+0

[these] (http://stackoverflow.com/questions/14287252/accessing-c-qlists-from-qml) 답변으로 도움이 될 수 있습니까? – BaCaRoZzo

답변

6

QML에 노출 된 클래스에서 INVOKABLE 게터 기능을 정의하십시오.

헤더 :

class MyQmlClass : QObject 
{ 
    Q_OBJECT 

public: 
    // ... 

    Q_INVOKABLE QString getString(int y, int y); 


    // ... 
} 

및 .cpp 파일의 광고에 구현은 다음과 같습니다 QML에서 마지막으로

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

:

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

답변 해 주셔서 감사합니다. :) – DrKaoliN