Qt RangeSloider onFirstChange不存在属性

Qt RangeSloider onFirstChange不存在属性,qt,qml,rangeslider,qtquickcontrols2,Qt,Qml,Rangeslider,Qtquickcontrols2,我正在QML中为我的项目使用RangeSloider。我的范围滑块代码如下所示: RangeSlider { id: rangeSLider first.value: 0.0 second.value: 1.0 anchors.horizontalCenter: parent.horizontalCenter width: 275 onFirstChanged: console.log("Change") } 当我运行这段代码时

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

 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文件中的文本。所以我想我应该使用
onFirstChange
onSecondChange
函数来实现这一点,但它不起作用


我如何才能做到这一点?

请提供一个。它帮助别人,帮助你容易得多。在本例中,我希望看到一个可以使用qmlscene查看的QML片段(包括显示您使用的导入,这很重要!)

假设您正在使用,
first
second
属性是常量。这意味着这些值本身不会更改,而是这些属性(例如first.value)的成员会更改。因此,您希望将更改信号连接到
第一个
/
第二个
/实例,而不是连接到RangeSloider本身,如下所示:

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)的RangeSloider的语法:

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)
}
资料来源: