app/resources/qml/components/SmoothSliderDelegate.qml

72 lines
1.7 KiB
QML

import QtQuick 2.0
import QtQuick.Controls 2.4
SmoothItemDelegate {
id: control
property double sliderValue: 0.5
signal sliderFinished()
onSliderValueChanged: {
slider.value = control.sliderValue
}
rightPadding: slider.width + width * 0.02
Slider {
id: slider
anchors {
right: parent.right
rightMargin: parent.width * 0.01
verticalCenter: parent.verticalCenter
}
height: control.height * 0.4
width: parent.width * 0.6
onValueChanged: {
control.sliderValue = value
}
onPressedChanged: {
if(!pressed){
control.sliderFinished()
}
}
background: Rectangle {
x: slider.leftPadding
y: slider.topPadding + slider.availableHeight / 2 - height / 2
implicitWidth: 200
implicitHeight: 4
width: slider.availableWidth
height: slider.height * 0.2
radius: height * 0.5
color: "#bdbebf"
Rectangle {
width: slider.visualPosition * parent.width
height: parent.height
color: "#21be2b"
radius: height * 0.5
}
}
handle: Rectangle {
x: slider.leftPadding + slider.visualPosition * (slider.availableWidth - width)
y: slider.topPadding + slider.availableHeight / 2 - height / 2
implicitWidth: 26
implicitHeight: 26
width: slider.height
height: width
radius: height * 0.5
color: slider.pressed ? "#f0f0f0" : "#f6f6f6"
border.color: "#bdbebf"
}
}
}