Zur Verwendung des Backends in einer QML-Anwendung muss die Klasse im Konstruktor von OpcUaMachineBackend oder in main.cpp im Qt-Typen-System registriert werden.
Registrieren von MachineBackend
qmlRegisterType<OpcUaMachineBackend>("OpcUaMachineBackend", 1, 0,
"OpcUaMachineBackend");
Anschließend kann in main.cpp ein OpcUaMachineBackend-Objekt erstellt und als Context-Property an QML übergeben werden. Innerhalb der QML-Anwendung sind nun die Properties, Signale und Slots von OpcUaMachineBackend zugänglich und können beispielsweise verwendet werden, um GUI-Elemente zu beschriften, Buttons an serverseitige Methodenaufrufe zu binden oder den Wert eines Sliders in eine Variable auf dem Server zu schreiben.
Verwendung der Properties und Slots in QML
Text { // erzeugt ein Property-Binding. Der Text aktualisiert sich, sobald sich der Wert des Properties ändert.
text: "<b>Tank1: </b>" + uaBackend.percentFilledTank1 + "%"
}
Button {
text: "Start"
onClicked: uaBackend.startPump(); // ruft den in C++ implementierten Slot OpcUaBackend::startPump() auf
}