Qt - QML - Funktion bei Programmstart ausführen
-
Hallo @all,
ich stehe bei Qt/QML gerade vor einem banalen Problem, komme aber, leider auch nicht mittels Google, nicht auf die Lösung.
Ich habe eine QML-Applikation, welche bei Programmstart eine Funktion bzw. einen "Konstruktor" ausführen soll, welche verschiedene Daten checkt, also u.a. C++-Funktionen aufruft oder Webzeugs checkt, und in Abhängigkeit dieser Parameter das Fenster mit Informationen füllt.
Leider fehlt mir dafür der Name des Events o.ä. - Wie kann ich also meinem QML-Code bei Programmstart Parameter übergeben, bzw. womit kann er diese ausführen? Ich dachte an sowas banales wie "onCreate", aber anscheinend existiert so eine Funktionalität nicht
Danke im voraus!
MfG
shft
-
Ich würde vermutlich einfach eine C++-Klasse mit den entsprechenden Daten erstellen und ein Objekt davon dann in QML verwenden.
Also mit z.B. QQmlApplicationEngine::rootContext()->setContextProperty("object", &object);.
-
Es gibt das onCompleted signal wenn eine component (z.b. Rectangle oder Item) "fertig initialisiert" ist
https://stackoverflow.com/questions/26603461/emit-qml-signal-on-start-applicationund wegen program parametern gibt es das "statische" application QML object/type:
http://doc.qt.io/qt-5/qml-qtqml-qt.html#application-prop
welches ein arguments property hat.
Beispiel, wenn auch für jolla, aber das prinzip sollte klar sein
https://together.jolla.com/question/31188/qml-argument-access/
-
Danke für eure schnelle Hilfe, werde die verschiedenen Ansätze alle mal ausprobieren