Qt

QML <-> CPP 함수 호출

최재국 2022. 8. 10. 10:38

signal slot

CPP -> QML

CPP <- QML

 

QML에서 cpp 함수 호출 or cpp에서 QML함수 호출

invokeMethod

 

CPP-> QML

invokeMethod

 

QML -> CPP

함수선언에 Q_INVOKEABLE 붙임 ??

호출시 goekd

 

 

 

 

 

 

 

 

 

 

 

C++ 클래스(Test)생성

 

헤더파일에 signal 함수 선언

signal:

void testSignal(bool status);

 

qmlReterType으로 해당 C++ 클래스를 QML import 리스트에 등록

qmlRegisterType<Test>("TestHeader", 1, 0, "TestClass");

 

QML파일에서 해당 클래스를 import하여 등록

import TestHeader 1.0

 

QML파일에 해당 클래스 생성

TestClass{

 

}

QML 파일의 해당 클래스에 slot 함수 생성(이름은 CPP파일의 slot함수명에 on과 대문자를 붙임)

TestClass{

    onTestSlot: abcd = status

}

 

CPP에서 시그널 함수를 실행시킨다

emit testSignal(true);

 

실행과정

CPP 코드의 signal 함수 실행 -> QML의 slot 함수 실행