2014-01-08 3 views
2

QML에서 액세스 할 수있는 몇 가지 기능과 신호가 포함 된 C++ 클래스가 있습니다. x은, 위의 코드 작업을 수행하는 실제 C++ 클래스의 멤버 가정QML에서 별도의 개체를 만드는 대신 QML에서 C++ 클래스 개체에 액세스하는 방법?

myClass 
{ 
    id: abc 

    x: 100  
    onXChanged: {console.log ("xx");} 
} 

: 지금, QML에서 해당 클래스의 멤버에 액세스하기 위해, 내가 좋아하는 뭔가를 작성합니다.


는 지금, 나는 관련 C++ 파일에서 만든 C++ 클래스 즉 myClass의 객체를 가지고있다.

질문 :
대신 QML에서 같은 클래스의 새로운 객체를 생성하는 것이 가능하고 액세스하고 QML에서 이미 생성 된 C++ 객체를 사용하는 것이 합리적이다?

답변

2

여기에는 컨텍스트 속성을 사용할 수 있습니다. 다음과 같이

... 

MyClass myClassObject; 
QQuickView view; 
view.rootContext()->setContextProperty("myClassContextProperty", &myClassObject); 
view->setSource(QUrl::fromLocalFile("main.qml")); 
view->show(); 

... 

다음은 QML에 액세스 할 수 있습니다 : 당신이 뭔가를 쓰는 것

Button { 
    onClicked: myClassContextProperty.x = 100 
}