Qml -> C++ simples Beispiel
-
Ich lerne in Kleinstschritten:
Sensor -> Arduino -> IDE/Sketch -> I2C -> C++ -> QmlGibt es ein wirklich simples Beispiel, in dem gezeigt wird, wie eine in C++ erstellte „Hallo Welt“ Textvariable oder 1-10 Zählschleife in Qml dargestellt werden kann?
Lieben Gruß
Ronald -
@ronnic sicherlich
import QtQuick 2.12 import QtQuick.Window 2.2 import QtQuick.Controls 2.12 ApplicationWindow { id: mainWindow visible: true width: 400 height: 100 Text { id: textId anchors{ left: parent.left right:parent.right top: parent.top bottom: parent.verticalCenter } text: qsTr("Hallo Welt") } Button{ id: btn anchors{ left: parent.left right:parent.right top: textId.bottom bottom: parent.bottom } text: "Starte Zählschleife" onClicked: zaehler.start() } Timer{ id:zaehler running:false interval: 1000 //1 sec repeat: true property int count: 0 onTriggered:{ if(count == 10){ zaehler.stop return; } textId.text = ++count } } }
Alternativ würde ich die Beispiel Sektion in der Qt Dokumentation empfehlen, die ist sehr gut, und man kann sie gut zum lernen benutzen
https://doc.qt.io/qt-5/qtquick-codesamples.html -
@J-Hilk hallo
Das von dir gezeigte Script ist aber für das QML-GUI gedacht oder? Die Inhalte („hallo welt“ und Zähler) werden also in QML erstellt und nicht aus der Main.cpp importiert. Sehe ich das richtig?Ich benötige aber einen Workflow, wie ich Daten aus der Logik von C++ ( main.cpp) in QML darstellen oder als Parameter für weitere Funktionen in QML verwenden kann.
-
@ronnic said in Qml -> C++ simples Beispiel:
Ich benötige aber einen Workflow, wie ich Daten aus der Logik von C++ ( main.cpp) in QML darstellen oder als Parameter für weitere Funktionen in QML verwenden kann.
Man kann die Daten über Signale (Notifier bzw. über Properties) an dein QML-"Frontend" senden.
Die eigentliche Logik kann dann in deinen C++ Klassen stattfinden.Guck mal hier:
-
Etwas verspätet, aber dann kam die Erinnerung doch noch :D
https://github.com/DeiVadder/CppAndQmlInteractionExample
3 Methoden sind in der main.cpp zum angucken.
um zwischen den einzelnen Methoden zu wechseln, einfach das entsprechende define wieder einkommentieren://#define MethodA //Registered type //#define MethodB //Singeltons //#define MethodC //exposed c++ instance