QML RangeSlider с опорным значением - PullRequest
0 голосов
/ 26 мая 2020

Я играю с 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 и не знаю, как этого избежать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...