我正在尝试创建自定义QML Slider
样式,如下所示:
SliderStyle {
groove: Item {
anchors.verticalCenter: parent.verticalCenter
implicitWidth: 500
implicitHeight: 10
Rectangle {
radius: height/2
anchors.fill: parent
border.width: 1
border.color: "#888"
gradient: Gradient {
GradientStop { color: "#0A406E" ; position: 0 }
GradientStop { color: "#FFA800" ; position: 1 }
}
}
}
}
但是,此处凹槽的渐变从top
到bottom
而不是left
到right
。我尝试交换width
和height
值并将Rectangle
旋转-90度,但滑块没有响应。此外,我永远无法沿滑块控件的中心完成旋转,这使得放置有点问题。
我想知道是否有办法实现这种左 - >右梯度流。
答案 0 :(得分:3)
Rectangle
的属性gradient
允许构造简单的垂直渐变。对于更复杂的渐变,有LinearGradient
,RadialGradient
和ConicalGradient
类型。
例如,水平渐变:
import QtGraphicalEffects 1.0
SliderStyle {
groove: Item {
anchors.verticalCenter: parent.verticalCenter
implicitWidth: 500
implicitHeight: 10
Rectangle {
radius: height/2
anchors.fill: parent
border.width: 1
border.color: "#888"
layer.enabled: true
layer.effect: LinearGradient {
start: Qt.point(0, 0)
end: Qt.point(500, 0)
gradient: Gradient {
GradientStop { position: 0.0; color: "#0A406E" }
GradientStop { position: 1.0; color: "#FFA800" }
}
}
}
}
}