W C++ mam klasę z funkcją do sprawdzenia, co chciałbym zrobić, to wywołać tę metodę z QML/Javascript (to dostałem do pracy) i przekazać to wywołanie zwrotne JavaScript.Przekazywanie wywołania zwrotnego JavaScript do metody C++ Inwokowane w Qml
W kodzie, określam moją klasę jak:
class MyObject: public QObject
{
Q_OBJECT
public:
Q_INVOKABLE void doSomething(quint64 x, /* what goes here? */ jsCallback)
{
x += 1;
// I suspect this will require a invocation mechanism but
// this shows what I'd like to do
jsCallback(x);
}
};
I w moim QML, chciałbym zrobić coś takiego:
Rectangle {
function myCallback(x){
console.log("x=" + x);
}
MouseArea{
anchors.fill: parent
onClicked:{
myObject.doSomething(2, myCallback);
}
}
}
Tak, że po kliknięciu na Rectangle
, ja w konsoli zobaczyłby x=3
. Jak zdefiniować parametr w C++ i wywołać wywołanie zwrotne, aby to osiągnąć?
Dziękujemy!
Również w przypadku korzystania z funkcji lambda wewnątrz funkcji (na przykład, po odpowiedzi sieciowej), przekazuj wartość QJSValue jako zmienną \ według wartości. – Alexander