RangeSlider onFirstChange 不存在的属性

Posted

技术标签:

【中文标题】RangeSlider onFirstChange 不存在的属性【英文标题】:RangeSlider onFirstChange non-existent property 【发布时间】:2017-06-08 21:09:04 【问题描述】:

我在 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 函数来做到这一点,但它没有用。

我该怎么做?

【问题讨论】:

【参考方案1】:

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

假设您使用的是QtQuickControls 2's RangeSlider,firstsecond 属性是不变的。这意味着这些值本身不会改变,而是这些属性的成员(例如 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!")
    

【讨论】:

【参考方案2】:

这是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

【讨论】:

以上是关于RangeSlider onFirstChange 不存在的属性的主要内容,如果未能解决你的问题,请参考以下文章

新的 ion.RangeSlider 给 Shiny 带来了哪些优势?

在 rangeslider.js 中禁用某些范围

RangeSlider 的 JavaFX ControlsFX CSS

Rangeslider.js |未捕获的类型错误:无法读取未定义的属性“0”

如何在 Flutter 中制作这个自定义 RangeSlider?

如何单独引用 RangeSlider 的每个拇指 (ControlsFX)