В исследовании этой проблемы, я нашел другое решение, которое может принести пользу своенравного Googler наткнуться на эту тему.
В другом заявленном ответе вам необходимо определить переход для каждого состояния, которое у вас есть, что становится неудобным для более крупных программ со многими состояниями.
Кроме того, по крайней мере, в настоящее время в QML,
onStateChanged: previousState = state
приводит к previousState держащего текущему состояния, а не предыдущий.
так, мое решение:
//within main:
property string previous_state: ""
property string current_state: "default_state"
Transition{
PropertyAction {target: main; property: "previous_state"; value: main.current_state}
PropertyAction {target: main; property: "current_state"; value: main.state}
}
previous_state будет всегда держать предыдущее состояние, и не требует от вас, чтобы определить новый переход для каждого состояния у вас есть.
Единственное предостережение: вы должны установить current_state в любое состояние по умолчанию, поэтому previous_state верен после первого, а не второго перехода.
Почему бы не просто сохранить текущее состояние перед изменением? 'свойство string previousState onStateChanged: previousState = state' – folibis
Я не возражаю против onStateChanged, спасибо – morte