telephant/qml/ImageButton.qml

55 lines
1.2 KiB
QML
Raw Normal View History

import QtQuick 2.5
2017-08-29 14:28:33 +00:00
import QtQuick.Controls 2.1
2017-08-29 05:02:56 +00:00
import QtGraphicalEffects 1.0
Image {
id: img
property var onClicked: function () {}
property int roundness: 0
property int animationDuration: 500
2017-08-29 05:02:56 +00:00
fillMode: Image.Pad
horizontalAlignment: Image.AlignHCenter
verticalAlignment: Image.AlignVCenter
opacity: 0.3
smooth: true
states: State {
name: "mouse-over"
when: mouseArea.containsMouse
PropertyChanges {
target: img
opacity: 1.0
}
}
transitions: Transition {
NumberAnimation {
properties: "opacity"
easing.type: Easing.InOutQuad
duration: animationDuration
2017-08-29 05:02:56 +00:00
}
}
MouseArea {
id: mouseArea
anchors.fill: parent
hoverEnabled: true
cursorShape: Qt.PointingHandCursor
2017-08-29 05:02:56 +00:00
onClicked: parent.onClicked()
}
layer.enabled: roundness > 0
2017-08-29 05:02:56 +00:00
layer.effect: OpacityMask {
maskSource: Item {
width: img.width
height: img.height
Rectangle {
anchors.fill: parent
2017-08-29 05:02:56 +00:00
radius: roundness
}
}
}
}