带有When语句的QML绑定滑块值

时间:2016-11-15 11:59:31

标签: c++ qt qml qtquickcontrols

我想在QML中将矩形绑定到滑块。 X轴滑块的最大值为360.在180以下,矩形应沿变化方向移动。在180以上,矩形应沿相反的方向移动。

这是我的滑块和矩形的代码片段

Slider {
        id: xAxis
        x: 60
        y: 45
        width: 200
        value: 60
        maximumValue: 360

    Rectangle {
        id: rect
        width: parent.width/10
        height: parent.height/4
        color: "transparent"
        border.color: "red"
        border.width: 5
        radius: 10
    }

用于绑定的代码段

Binding {
        target: rect
        property: "x"
        value: (180 + (180 - xAxis.value))*(Screen.width/90)
        when: xAxis.updateValueWhileDragging && xAxis.value >= 180
    }

在那种情况下它不会更新。问题的根源是什么?

1 个答案:

答案 0 :(得分:3)

您需要为0到180之间的行为添加另一个绑定

Binding {
    target: rect
    property: "x"
    value: (xAxis.value)*(Screen.width/90)
    when: xAxis.updateValueWhileDragging && xAxis.value < 180
}