QML Slider Handle没有移动

时间:2017-07-11 10:13:40

标签: qt qml qtquick2 qtquickcontrols qtquickcontrols2

当我尝试设置" handle:Rectangle"时,我在移动滑块手柄时遇到问题。 ,下面是代码:

Slider {
    id: slider
    x: 372
    y: 70
    width: 33
    height: 457
    spacing: 0
    anchors.rightMargin: 395
    rotation: 0
    orientation: Qt.Vertical
    font.family: "Arial"
    value: 0.5
    anchors.right: parent.right

    background: Rectangle {
        anchors.centerIn: parent
        x: slider.topPadding + slider.availableWidth / 2 - width / 2
        y: slider.leftPadding
        implicitWidth: 200
        implicitHeight: 4
        width: slider.availableHeight
        height: implicitHeight
        radius: 2
        rotation: 90
        color: "#bdbebf"
    }

    handle: Rectangle {
        anchors.centerIn: parent
        color: slider.pressed ? "white" : "red"
        border.color: "gray"
        //border.width: 2
        width: 20
        height: 20
        radius: 6
    }
}

如果我没有设置样式句柄:矩形,我可以移动滑块。

请建议。

1 个答案:

答案 0 :(得分:3)

也就是说,因为你无法将它锚定到中心。您需要根据x指定yvisualPosition值。

有关如何自定义滑块的信息,请参阅example

请注意,那里提供的自定义不考虑垂直滑块,因此您需要对其进行调整:

y: slider.topPadding + slider.visualPosition * (slider.availableHeight - height)
x: slider.leftPadding + slider.availableWidth / 2 - width / 2

应该为你做。当然要删除锚定!