C++에서 QML 처리 방법과 QML에서 C++ Connect 처리 방법을 알아본다.

c++1

그림에 대해서 간단히 설명을 한다.
1. QML에서 호출할 수 있는 C++ 함수
– C++ class에 public slots으로 선언된 함수
– Q_INVOKABLE 매크로가 정의된 함수
– Q_PROPERTY 매크로가 선언된 함수
2. C++에서 호출할 수 있는 QML 함수
– keyword function로 선언된 함수 (QMetaObject::invokeMethod() 사용하여 호출한다)
3. Connect QML/C++ Signal to C++/QML Object’s slot
– QObject::connect() 사용
– C++에 public signal로 선언된 함수
– Q_PROPERTY 매크로가 선언된 함수의 NOTIFY 항목을 이용
4. QML and C++ class 상호 연동
– qmlRegisterType( url, 1, 0, “Name” )을 사용
– C++ class에 Q_PLUGIN_METADATA 매크로 선언

그럼 Qt 연동 종류, 왜? C++ 연동을 하는가에 대해서 알아본다.

1. Qt 연동 종류.
– Using QML Bindings in C++ Applications
– Using QML in C++ Applications
– Register 등록

[Keyword] – Signal & slot
– Q_INVOKABLE
– Connection
– Q_PROPERTY
– qmlRegisterType
– import…as…

2. 사용 목적
– C++ Qt 기반의 모델 또는 Third-party 의 C++ library를 호출할 때,
– Qt에 선언되어있는 함수를 쓰고자 할 때,
– 개발자가 만든 Qml elements를 작성 및 배포 하려고 할 때,

아래 각 링크를 통해 해당 내용에 대한 자세한 사항을 설명하고자 한다.

  1. C++에서 QML 처리방법
  2. Handler Event in Qml
  3. Qml과 C++의 Connect 처리