Ich kann keine Möglichkeit finden, von einer qml-Datei zur anderen zu kommunizieren. Ich weiß, dass es viele Möglichkeiten gibt, Signale von qml an C++ - Slots und umgekehrt zu senden, aber alle meine Nachforschungen über Signale zwischen zwei verschiedenen qml-Dateien sind fehlgeschlagen. Also ich würde mich freuen wenn mir jemand sagen kann, wie ich dieses Problem lösen muss.So senden Sie ein Signal von einem qml zu einem anderen
Zunächst ein wenig abstrahierten Beispiel das Problem in einer besseren Art und Weise zu verstehen ...
Die erste QML in den Wurzeln sieht wie folgt aus:
//MyQML1.qml
Rectangle
{
id: idMyRec1
signal mySignalFromQML1()
Button
{
id: idMyButton1
onClicked:
{
idMyRec1.mySignalFromQML1(); //to send the signal
}
}
}
Die zweite man sieht wie folgt aus:
//MyQML2.qml
Rectangle
{
id: idMyRec2
Text{
id: idMyText2
text: "Hello World!"
onMySignalFromQML1: //to receive the signal from the other qml
{
idMyText2.text = "Good Bye World!";
}
}
}
Also dieser Button sollte den Text in meinem 2. QML zu "Good Bye World!" wenn geklickt wird ... aber das funktioniert nicht ... gibt es andere Möglichkeiten, Signale von QML an eine andere QML zu senden ?! Oder mache ich etwas falsch?
Sorry, aber das hat bei mir bisher nicht funktioniert ... Ich habe dein Beispiel in einem löcheren neuen Projekt versucht, um es zu testen, aber mein Compiler kann nicht mit diesen "Objekten" (?) Umgehen, die du Rect1 {. ..} und Rect2 {...} Was mache ich falsch? Sorry ... ich bin neu in der qml Programmierung ... aber danke für deine Hilfe! –
Sie müssen 'Rect1.qml' und' Rect2.qml' als Teil Ihrer Projekte haben. Dann können Sie sie als QML-Typen verwenden. Sie müssen wirklich einen Schritt zurück gehen und QML von Grund auf lernen. Ein guter Anfang ist https://qmlbook.github.io/ – dtech
Ahh, ok ... danke! Ich Idiot! Ich habe das schon oft gemacht, aber vergessen, meine qml-Dateien in das neue Projekt umzubenennen ... Aber du hast Recht ... Ich muss mehr über QML lernen ... weit weg! Danke für den Link! –