我正在尝试在QML中创建Slider
。滑块的maximumValue
属性可能会根据我的应用程序中的某些状态而改变。 maximumValue
属性更改后,我想“重置”我的滑块,使其value
属性位于maximumValue
。我遇到的问题是,当我更改maximumValue
属性时,我的value
属性更改为正确的属性,但在视觉上它保持在先前的maximumValue
属性,直到我不例如,点击句柄。
这是一个简单的虚拟代码,它可以重现这个问题:
import QtQuick 2.5
import QtQuick.Window 2.2
import QtQuick.Controls 1.4
import QtQuick.Controls.Styles 1.2
ApplicationWindow {
visible: true
width: 640
height: 480
title: qsTr("Hello World")
property int maxVal: 1
Item {
width: 20
height: 200
Slider {
anchors.fill: parent
orientation: Qt.Vertical
maximumValue: maxVal
minimumValue: 0
value: 1
stepSize: 1.0
style: SliderStyle {
groove: Rectangle {
width: control.height
height: control.width
color: "red"
}
handle: Rectangle {
width: 20
height: 20
color: "green"
Text {
anchors.centerIn: parent
text: control.value
}
}
}
onMaximumValueChanged: value = maximumValue
}
}
Button {
anchors.right: parent.right
text: "Press Me"
onClicked: maxVal = 100
}
}
下面你可以看到某些阶段的截图。
当我按下“按我”按钮时,会将maximumValue
设置为1.正如您所见,value
确实从1更改为100,但在视觉上它保持在1位置:
最后,当我点击滑块的处理程序(绿色矩形)时,它会更新并将值从100切换为1。
之前有人遇到过这个问题吗?