import QtQuick 2.9 import QtQuick.Window 2.3 import QtQuick.Controls 2.4 import "./" Window { visible: true width: 640 height: 480 title: qsTr("Training") Item { id: game anchors.fill: parent state: "idle" states: [ State { name: "idle" PropertyChanges { target: mainStack currPage: startPageComp } }, State { name: "calender" PropertyChanges { target: mainStack currPage: calPageComp } }, State { name: "calculate" PropertyChanges { target: mainStack currPage: calcuPageComp } } ] StackView { id: mainStack property var currPage anchors.fill: parent onCurrPageChanged: { mainStack.replace(currPage) } onCurrentItemChanged: { mainStack.currentItem.pageOpened() } Component { id: startPageComp StartPage { id: startPage } } Component { id: calPageComp CalenderPage { id: calPage } } Component { id: calcuPageComp CalculatePage { id: calcuPage } } replaceExit: Transition { NumberAnimation { from: 1 to: 0 property: "opacity" duration: 200 easing.type: Easing.InOutQuad } } replaceEnter: Transition { NumberAnimation { from: 0 to: 1 property: "opacity" duration: 200 easing.type: Easing.InOutQuad } } } } }