Thats what signals and slots are for.
You can use the QML Connections for connecting arbitrary signals to arbitrary slots in QML.
http://qt-project.org/doc/qt-4.8/qml-connections.html
Container {
id: pinContainer
objectName: "pinContObject"
...
function addPin(lat, lon, name, address) {
var marker = pin.createObject();
marker.lat = lat;
marker.lon = lon;
...
}
Connections {
target: backend
onDoAddPin: {
addPin(latitude, longitude,name, address)
}
}
}
and in C++ backend, all you have to do is
class Backend: public QObject {
signals:
void doAddPin(float latitude, float longitude, QString name, QString address);
........
void callAddPinInQML(){
emit doAddPin( 12.34, 45.67, "hello", "world");
}
}
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…