RangeSlider onFirstChange 不存在 属性

RangeSlider onFirstChange non-existent property

我正在为我的 QML 项目使用 RangeSlider。我的范围滑块代码如下:

 RangeSlider {
     id: rangeSLider
     first.value:  0.0
     second.value: 1.0
     anchors.horizontalCenter: parent.horizontalCenter
     width: 275
     onFirstChanged: console.log("Change")
 }

当我运行这段代码时,我得到一个错误。错误是:

Cannot assign to non-existent property "onFirstChanged"

我想更改父 QML 文件中的文本。所以我想我会使用 onFirstChangeonSecondChange 函数来做到这一点,但它没有用。

我该怎么做?

为了将来参考,请提供 MCVE。它可以帮助其他人更轻松地帮助您。在这种情况下,我希望看到一个可以使用 qmlscene 查看的 QML 片段(包括显示您使用的导入,这很重要!)

假设您使用的是 QtQuickControls 2's RangeSliderfirstsecond 属性是不变的。这意味着这些值本身不会改变,而是这些属性的成员(例如 first.value)会改变。因此,您想将更改信号连接到 first/second/ 实例,而不是连接到 RangeSlider 本身,如下所示:

RangeSlider {
    from: 1
    to: 100
    first.value: 30
    second.value: 70

    Connections {
        target: first
        onValueChanged: console.log("first.value changed!")
    }
}

这是 Qt 5.11 (Qt QuickControls 2.4):

的 RangeSlider 语法
RangeSlider {
    from: 0
    to: 100
    first.value: 25
    second.value: 75
    first.onValueChanged: console.debug("RangeSlider first value is " + first.value)
    second.onValueChanged: console.debug("RangeSlider second value is " + second.value)
}

来源:http://doc.qt.io/qt-5.11/qml-qtquick-controls2-rangeslider.html