Ich habe eine generische QtObject
in QML, die ich animierte Eigenschaften von, und ich möchte sie alle zusammen starten/stoppen. Ich schrieb den folgenden Code, aber Qt Creator Fehler: qrc:/DummyData.qml:11 Cannot assign to non-existent default property
Animationen für verschiedene Eigenschaften gruppieren
... wo Zeile 11 ist die mit ParallelAnimation {
.
import QtQuick 2.5
QtObject {
property real windowFrontLeftOpenPct: 0.0
property real windowFrontRightOpenPct: 0.0
property real windowRearLeftOpenPct: 0.0
property real windowRearRightOpenPct: 0.0
property bool windowAnimationsActive: false
ParallelAnimation {
running: windowAnimationsActive
SequentialAnimation on windowFrontLeftOpenPct {
loops: Animation.Infinite
NumberAnimation { from:0; to:1; duration:2000; easing.type:Easing.InOutSine }
NumberAnimation { from:1; to:0; duration:2000; easing.type:Easing.InOutSine }
}
SequentialAnimation on windowFrontRightOpenPct {
loops: Animation.Infinite
NumberAnimation { from:0; to:1; duration:2000; easing.type:Easing.InOutSine }
NumberAnimation { from:1; to:0; duration:2000; easing.type:Easing.InOutSine }
}
SequentialAnimation on windowRearLeftOpenPct {
loops: Animation.Infinite
NumberAnimation { from:0; to:1; duration:2000; easing.type:Easing.InOutSine }
NumberAnimation { from:1; to:0; duration:2000; easing.type:Easing.InOutSine }
}
SequentialAnimation on windowRearRightOpenPct {
loops: Animation.Infinite
NumberAnimation { from:0; to:1; duration:2000; easing.type:Easing.InOutSine }
NumberAnimation { from:1; to:0; duration:2000; easing.type:Easing.InOutSine }
}
}
}
Kann ich verschiedene Zieleigenschaften nicht in einer einzigen parallelen Animation mischen?
Hinweis: eine Abhilfe in diesem Fall ist die ParallelAnimation
Wrapper zu entfernen und gelten running:windowAnimationsActive
zu jedem des SequentialAnimations. Dies ist jedoch keine generische Lösung, denke ich, da es mir nicht möglich ist, viele Animationen über einen übergeordneten Wrapper einfach anzuhalten und wieder aufzunehmen.
Das 'QtObject' hat keine Standardeigenschaft. Wenn Sie untergeordnete Elemente in visuellen Elementen in QML deklarieren, werden sie der speziellen Standardeigenschaft eines Items hinzugefügt. 'QtObject hat keine. Sie müssen explizit über die Instantiierung des Child 'ParallelAnimation' sprechen - fügen Sie es in eine benutzerdefinierte benannte Eigenschaft ein. AFAIK, dieses Problem hat nichts mit Animationen zu tun. Ein minimaler Testfall ist ein 'QtObject', das Sie * irgendein * QML-Unterobjekt in:' QtObject {QtObject {}} 'erstellen. –
@KubaOber Das klingt vernünftig. Darf ich fragen, warum Sie kommentiert haben, anstatt zu antworten? – Phrogz
Ich antworte normalerweise nur, wenn ich Zeit habe, Code auszuführen, um sicherzustellen, dass ich nicht voll davon bin :) Ich habe in den letzten Monaten auch keine QML geschrieben, daher bin ich in diesem Bereich etwas eingerostet. Lieber sicher als Nachsicht, und ich hasse es, in einer Antwort irreführend zu sein. Kommentare sind faires Spiel, obwohl :) –