데브스카이 2022.12.05 17:30 조회 수 : 1843
qml에서
qmlRegister에 등록한 cpp객체를 사용합니다.
cpp객체의 함수를 호출하기위해 Q_INVOKABLE 매크로를 사용하는데요..
문제는.. qml에 정의된 js함수(callback)를 넘기고 싶은데.. cpp객체 함수에서.. js함수를 받을때 어떤 타입으로 받아야 하는지를 모르겠네요..
2022.12.07 16:39
QMetaObject::invokeMethod 를 사용하면 qml의 함수를 호출할 수 있습니다.
<< in QML >>
... Item { id: myItem
Component.onCompleted: { myManager.register(this) } function myCallbackFunc(content){ // Do Something } } ...
<< in C++ >>
...
void MyManager::register(QObject *obj) { if(obj == nullptr)) return;
// Register object. myQmlObject = obj; }
QMetaObject::invokeMethod(myQmlObject, "myCallbackFunc", Q_ARG(QVariant, "foobar"));
이 댓글의 추천인 목록 추천0 비추천0 댓글
QMetaObject::invokeMethod 를 사용하면 qml의 함수를 호출할 수 있습니다.
<< in QML >>
...
Item {
id: myItem
Component.onCompleted: {
myManager.register(this)
}
function myCallbackFunc(content){
// Do Something
}
}
...
<< in C++ >>
...
void MyManager::register(QObject *obj)
{
if(obj == nullptr))
return;
// Register object.
myQmlObject = obj;
}
...
QMetaObject::invokeMethod(myQmlObject, "myCallbackFunc", Q_ARG(QVariant, "foobar"));