2015-06-26 15:38:24 +02:00
|
|
|
import QtQuick 2.5
|
|
|
|
|
import QtQuick.Controls 1.4
|
2011-11-16 10:32:37 +01:00
|
|
|
|
2015-06-26 15:38:24 +02:00
|
|
|
ApplicationWindow {
|
2011-08-30 11:45:08 +02:00
|
|
|
id: page
|
2014-04-08 16:08:32 +02:00
|
|
|
visible: true
|
2011-08-30 11:45:08 +02:00
|
|
|
width: 360
|
|
|
|
|
height: 360
|
|
|
|
|
color: "#343434"
|
2015-06-26 15:38:24 +02:00
|
|
|
title: qsTr("Transitions")
|
|
|
|
|
|
|
|
|
|
menuBar: MenuBar {
|
|
|
|
|
Menu {
|
|
|
|
|
title: qsTr("File")
|
|
|
|
|
MenuItem {
|
|
|
|
|
text: qsTr("&Open")
|
|
|
|
|
onTriggered: console.log("Open action triggered");
|
|
|
|
|
}
|
|
|
|
|
MenuItem {
|
|
|
|
|
text: qsTr("Exit")
|
|
|
|
|
onTriggered: Qt.quit();
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
2011-08-30 11:45:08 +02:00
|
|
|
|
|
|
|
|
Image {
|
|
|
|
|
id: icon
|
|
|
|
|
x: 10
|
|
|
|
|
y: 20
|
2015-06-26 15:38:24 +02:00
|
|
|
source: "states.svg"
|
2011-08-30 11:45:08 +02:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
Rectangle {
|
|
|
|
|
id: topLeftRect
|
2015-06-26 15:38:24 +02:00
|
|
|
x: 10
|
|
|
|
|
y: 20
|
|
|
|
|
width: 44
|
|
|
|
|
height: 44
|
2011-08-30 11:45:08 +02:00
|
|
|
color: "#00000000"
|
|
|
|
|
radius: 6
|
2014-04-08 16:08:32 +02:00
|
|
|
opacity: 1
|
2011-08-30 11:45:08 +02:00
|
|
|
anchors.left: parent.left
|
|
|
|
|
anchors.leftMargin: 10
|
|
|
|
|
anchors.top: parent.top
|
|
|
|
|
anchors.topMargin: 20
|
|
|
|
|
border.color: "#808080"
|
|
|
|
|
|
|
|
|
|
MouseArea {
|
2014-04-08 16:08:32 +02:00
|
|
|
id: mouseArea1
|
2011-08-30 11:45:08 +02:00
|
|
|
anchors.fill: parent
|
2014-04-08 16:08:32 +02:00
|
|
|
onClicked: stateGroup.state = ' '
|
2011-08-30 11:45:08 +02:00
|
|
|
}
|
2014-04-08 16:08:32 +02:00
|
|
|
}
|
2011-08-30 11:45:08 +02:00
|
|
|
|
2014-04-08 16:08:32 +02:00
|
|
|
Rectangle {
|
|
|
|
|
id: middleRightRect
|
2015-06-26 15:38:24 +02:00
|
|
|
width: 44
|
|
|
|
|
height: 44
|
2014-04-08 16:08:32 +02:00
|
|
|
color: "#00000000"
|
|
|
|
|
radius: 6
|
|
|
|
|
anchors.right: parent.right
|
|
|
|
|
anchors.rightMargin: 10
|
|
|
|
|
anchors.verticalCenter: parent.verticalCenter
|
|
|
|
|
border.color: "#808080"
|
2011-08-30 11:45:08 +02:00
|
|
|
|
2014-04-08 16:08:32 +02:00
|
|
|
MouseArea {
|
|
|
|
|
id: mouseArea2
|
|
|
|
|
anchors.fill: parent
|
|
|
|
|
onClicked: stateGroup.state = 'State1'
|
2011-08-30 11:45:08 +02:00
|
|
|
}
|
2014-04-08 16:08:32 +02:00
|
|
|
}
|
2011-08-30 11:45:08 +02:00
|
|
|
|
2014-04-08 16:08:32 +02:00
|
|
|
Rectangle {
|
|
|
|
|
id: bottomLeftRect
|
2015-06-26 15:38:24 +02:00
|
|
|
width: 44
|
|
|
|
|
height: 44
|
2014-04-08 16:08:32 +02:00
|
|
|
color: "#00000000"
|
|
|
|
|
radius: 6
|
|
|
|
|
border.width: 1
|
|
|
|
|
anchors.leftMargin: 10
|
|
|
|
|
anchors.bottom: parent.bottom
|
|
|
|
|
anchors.bottomMargin: 20
|
|
|
|
|
anchors.left: parent.left
|
|
|
|
|
border.color: "#808080"
|
2011-08-30 11:45:08 +02:00
|
|
|
|
2014-04-08 16:08:32 +02:00
|
|
|
MouseArea {
|
|
|
|
|
id: mouseArea3
|
|
|
|
|
anchors.fill: parent
|
|
|
|
|
onClicked: stateGroup.state = 'State2'
|
|
|
|
|
}
|
|
|
|
|
}
|
2011-08-30 11:45:08 +02:00
|
|
|
|
2014-04-08 16:08:32 +02:00
|
|
|
StateGroup {
|
|
|
|
|
id: stateGroup
|
|
|
|
|
states: [
|
|
|
|
|
State {
|
|
|
|
|
name: "State1"
|
2011-08-30 11:45:08 +02:00
|
|
|
|
2014-04-08 16:08:32 +02:00
|
|
|
PropertyChanges {
|
|
|
|
|
target: icon
|
|
|
|
|
x: middleRightRect.x
|
|
|
|
|
y: middleRightRect.y
|
2011-08-30 11:45:08 +02:00
|
|
|
}
|
|
|
|
|
},
|
2014-04-08 16:08:32 +02:00
|
|
|
State {
|
|
|
|
|
name: "State2"
|
|
|
|
|
|
|
|
|
|
PropertyChanges {
|
|
|
|
|
target: icon
|
|
|
|
|
x: bottomLeftRect.x
|
|
|
|
|
y: bottomLeftRect.y
|
2011-08-30 11:45:08 +02:00
|
|
|
}
|
2014-04-08 16:08:32 +02:00
|
|
|
}
|
2011-08-30 11:45:08 +02:00
|
|
|
]
|
2014-04-08 16:08:32 +02:00
|
|
|
transitions: [
|
|
|
|
|
Transition {
|
|
|
|
|
from: "*"; to: "State1"
|
|
|
|
|
NumberAnimation {
|
|
|
|
|
easing.type: Easing.OutBounce
|
|
|
|
|
properties: "x,y";
|
|
|
|
|
duration: 1000
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
Transition {
|
|
|
|
|
from: "*"; to: "State2"
|
|
|
|
|
NumberAnimation {
|
|
|
|
|
properties: "x,y";
|
|
|
|
|
easing.type: Easing.InOutQuad;
|
|
|
|
|
duration: 2000
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
Transition {
|
|
|
|
|
NumberAnimation {
|
|
|
|
|
properties: "x,y";
|
|
|
|
|
duration: 200
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
]
|
|
|
|
|
}
|
2011-08-30 11:45:08 +02:00
|
|
|
}
|