Ich habe eine Reihe von Objekten auf meinem Bildschirm, dass ich die Opazität ändern, und diese Opazitätsveränderung statt momentaner animierte zu machen, füge ich diese Behavior
zu jedem der Objekte:Wie Verhalten Unterklasse in QML
Behavior on opacity {
NumberAnimation {
duration: 500
easing.type: Easing.InOutQuad
}
}
Ich versuche, dies zu unterklassifizieren (nicht sicher, ob "Unterklasse" hier der richtige Begriff ist). Ich habe eine Datei FadeBehavior.qml
mit diesen Inhalten Namen erstellt:
import QtQuick 2.3
import QtQuick.Controls 1.3 as Controls
Behavior on opacity {
id: fadeBehavior
NumberAnimation {
duration: 500
easing.type: Easing.InOutQuad
}
}
Dann anstelle die Behavior
jedes Objekt hinzufügen, ich hinzufüge:
FadeBehavior { }
Aber das funktioniert nicht (sorry I kann keine weiteren Informationen hinzufügen als "nicht funktioniert" - das ist eine geerbte App und ich konnte sie nicht im Debug-Modus ausführen. Wenn ich einen Fehler in meiner QML-Datei mache, passiert nur, dass mein Fenster als angezeigt wird ein leeres 1-Zoll-Quadrat).
Es scheint, als ob die on opacity
in der ersten Zeile ist der Teil Qt nicht mag. In FadeBehavior.qml
on opacity
ist in rot, Token {
erwartet unterstrichen. Gibt es eine andere Syntax zum Angeben des Namens der Eigenschaft, der Behavior
zugeordnet ist?
Sie können dies nicht wirklich tun, 'Behaviour' ist ein" spezielles "QML-Element, selbst seine Syntax ist eine Ausnahme im QML-Programmierparadigma. Ich persönlich mag das nicht, besonders das Fehlen einer alternativen Möglichkeit, das Ziel zu spezifizieren. Ich habe festgestellt, dass dies bei vielen Gelegenheiten sehr liming ist. – dtech