Я играю с RangeSlider, и я пытаюсь создать его с опорным значением, где первое не может go больше, а второе не может go ниже этого значения.
RangeSliderFixed.qml
import QtQuick 2.12
import QtQuick.Controls 2.12
import QtQuick.Layouts 1
Item {
id: root
property int minValue: 0
property int maxValue: 100
property alias firstValue : rangeSlider.first.value
property alias secondValue : rangeSlider.second.value
property int step: 1
property int pivot: maxValue/2
Row {
anchors.fill: parent
Text {
width: parent.width * 0.15
height: parent.height
text: rangeSlider.first.value.toFixed(0)
horizontalAlignment: Text.AlignRight
verticalAlignment: Text.AlignVCenter
}
RangeSlider {
id: rangeSlider
width: parent.width * 0.7
height: parent.height
from: minValue
to: maxValue
stepSize: step
snapMode: RangeSlider.SnapAlways
// binding loop here
first.value: first.value > pivot ? pivot : first.value
second.value: second.value < pivot ? pivot : second.value
}
Text {
width: parent.width * 0.15
height: parent.height
text : rangeSlider.second.value.toFixed(0)
horizontalAlignment: Text.AlignLeft
verticalAlignment: Text.AlignVCenter
}
}
}
main.qml
import QtQuick 2.12
import QtQuick.Window 2.12
Window {
visible: true
width: 640
height: 480
RangeSliderFixed {
anchors.fill: parent
}
}
конечно, есть привязка l oop, когда значения превышают опорную точку, но я новичок в QML и не знаю, как этого избежать.