我在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文件中的文本。因此,我想我应该使用onFirstChange和onSecondChange函数来完成这个任务,但是它没有起作用。
我该怎么做?
发布于 2017-01-24 09:15:53
供以后参考,请提供一个MCVE。它能帮助别人帮你更容易。在本例中,我希望看到一个QML片段(包括显示您使用的导入,这是很重要的!)
假设您使用的是QtQuickControls 2的RangeSlider,则first和second属性是常量。这意味着这些值本身不会改变,相反,这些属性的成员(例如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!")
}
}发布于 2018-07-01 09:57:34
下面是RangeSlider of Qt 5.11 (Qt QuickControls 2.4)的语法
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
https://stackoverflow.com/questions/41821909
复制相似问题