QML Slider:手柄和鼠标光标

时间:2016-03-17 09:41:51

标签: slider qml

我在项目中创建了一个滑块,并按照以下代码进行了自定义:

Item {
    id: item1
    x: 0
    y: 0
    width: 200
    height: parent.height

    Rectangle {
        id: background
        anchors.fill: parent;
        color:Qt.rgba(0.9,0.9,0.9,1);
    }

    Slider {
        anchors.centerIn: parent
        orientation: Qt.Vertical
        height: parent.height

        style: SliderStyle {
            groove: Rectangle {
                implicitWidth: 200
                implicitHeight: 8
                color: "gray"
                radius: 8
            }
            handle: Rectangle {
                anchors.centerIn: parent
                color: control.pressed ? "white" : "lightgray"
                border.color: "gray"
                border.width: 2
                width: 20
                height: 20
                radius: 6
            }
        }
    }

}

当我更改手柄的大小以使其宽于高时出现问题,因此我更改了手柄:

width: 20
height: 80 //the height is changed instead of width but I think
           //it's because it is a vertical slider

然后,当我移动手柄时,它不会停留在鼠标光标下,但两者之间存在偏移。

如何解决这个问题?

1 个答案:

答案 0 :(得分:0)

当方向为垂直时,滑块为internally rotated 90 degrees,因此您需要设置width而不是height。换句话说,假设滑块是水平的,总是设置手柄的样式,其余的只是工作......

...除了您刚刚遇到的鼠标偏移错误。您的用例似乎不是auto-tested。请在bugreports.qt.io提交错误报告。