У меня есть ряд объектов на моем экране, что я изменить непрозрачность, и сделать это изменение непрозрачности анимированный вместо мгновенного, я добавить Behavior
к каждому из объектов:Как подкласс поведения в QML
Behavior on opacity {
NumberAnimation {
duration: 500
easing.type: Easing.InOutQuad
}
}
Я пытаюсь подклассифицировать это (не уверен, что «подкласс» является правильным термином здесь). Я создал файл с именем FadeBehavior.qml
с этим содержимым:
import QtQuick 2.3
import QtQuick.Controls 1.3 as Controls
Behavior on opacity {
id: fadeBehavior
NumberAnimation {
duration: 500
easing.type: Easing.InOutQuad
}
}
Затем, вместо добавления Behavior
к каждому объекту, я добавляю:
FadeBehavior { }
Но это не работает (жаль, что я не может добавить больше информации, чем «не работает» - это унаследованное приложение, и я не смог запустить его в режиме отладки, когда я ошибаюсь в своем файле QML, все, что происходит, это то, что мое окно появляется как пустой квадратный дюйм).
Кажется, что on opacity
в первой строке - это часть Qt не нравится. В FadeBehavior.qml
on opacity
подчеркивается красным, ожидая токена {
. Есть ли другой синтаксис для указания имени свойства, к которому привязан Behavior
?
Вы не можете этого сделать, 'Behavior' является« специальным »элементом QML, даже его синтаксис является исключением в парадигме языка QML. Мне лично это не нравится, особенно отсутствие альтернативного способа определения цели, я обнаружил, что это очень часто известкование. – dtech