2012-05-03 1 views
0

우리는 주된 프로그램에 instatniated하고 그것을 QML View로 전달한 객체를 가지고 있습니다. Q_PROPERTY이 정의되었습니다. 나는 이벤트 표자를 NOTIFY 신호에 설정하는 방법을 궁금해?QDeclarativeView에서받은 QML 객체에 이벤트 listner를 설정하는 방법은 무엇입니까?

+0

질문이 약간 명확하지 않습니다. C++에 정의 된 속성에서 방출 된 신호를 QML 코드에서 처리하기를 원하십니까? – teukkam

답변

1

정확하게 이해하면 this Qt DevNet forum post의 설정과 비슷합니다. 이 경우에만 READ 함수가 정의되어 있으며,이 함수는 somethingHappened 신호를 방출합니다. 작업 예제의 마지막 주석까지 맨 아래로 스크롤하십시오.

주요 방법 ++ 당신의 C에서이 같은
class SomeClass : public QObject { 
Q_OBJECT 
    Q_PROPERTY(sometype someProperty READ getSomeProperty NOTIFY somePropertyChanged) 
signals: 
    void somePropertyChanged(); 
}; 
QML_DECLARE_TYPE(SomeClass) 

뭔가 :

qmlRegisterType<SomeClass>("SomeModule", 1, 0, "SomeClass"); 
SomeClass myObj; 
QDeclarativeView view; 
view.rootContext()->setContextProperty("rootItem", (SomeClass *)&myObj); 

그런 다음 QML 측에서 당신이 처리 할 것 요약

, 당신은 C++ 헤더 파일에 정의 같은 것을 가지고 그것은 다음과 같습니다 :

import SomeModule 1.0 

SomeClass { 
    onSomePropertyChanged: { 
     // do stuff 
    } 
} 
관련 문제