import QtQuick 2.9 import QtQuick.Controls 2.2 import QtGraphicalEffects 1.0 Button { id: control property string image property color backgroundColor: appTheme.style.buttonColor property real imageScale: 1 property double glowRadius: 0.001 property double glowSpread: 0.2 property bool glowVisible: true property double glowScale: 0.75 property double glowOpacity: Math.pow( control.opacity, 100 ) //scale: control.pressed ? 0.8:1 Behavior on scale { PropertyAnimation { duration: 100 } } background: Item { id: controlBackgroundContainer RectangularGlow { id: effect glowRadius: control.glowRadius spread: control.glowSpread color: "black" visible: control.glowVisible cornerRadius: controlBackground.radius anchors.fill: controlBackground scale: control.glowScale opacity: control.glowOpacity } Rectangle { id: controlBackground anchors.fill: parent radius: height * 0.5 color: control.down ? Qt.darker(control.backgroundColor, 1.2) : control.backgroundColor Behavior on color { ColorAnimation { duration: 200 } } Image { id: buttonIcon source: control.image anchors.centerIn: parent height: parent.height * 0.5 width: height mipmap: true fillMode: Image.PreserveAspectFit scale: control.imageScale } } } }