QML Gauge. Как сделать индикатор от нуля?

Всем привет! Вопрос следующий. Как мне можно сделать индикатор Gauge, от -5000 до 5000, чтобы полоса начинала всегда заполняться с нуля? На данный момент у меня получилось написать следующий код:

import QtQuick 2.12
import QtQuick.Window 2.12
import QtQuick.Controls 2.0
import QtQuick.Controls.Styles 1.4
import QtQuick.Extras 1.4
import QtQuick.Extras.Private 1.0
import QtGraphicalEffects 1.0
import QtCharts 2.3

Window {
    id: winapp
    visible: true
    width: 1000
    height: 630
    color: "#1b2153"
    title: qsTr("FirstProject")

    Gauge {
        id: gauge1
        x: 20
        y: 53
        width: 44
        height: 547
        anchors.bottom: parent.bottom
        anchors.bottomMargin: 30
        value: 1246
        minimumValue: -5000
        maximumValue: 5000
        tickmarkStepSize: 500
        formatValue: function(value) {
            return value.toFixed(0);
        }
        property double minBarValue: 0
        style: GaugeStyle{
            valueBar: Item {
                 implicitWidth: 16
                 Rectangle {
                    width: parent.width
                    height: (gauge1.value === gauge1.minimumValue) ? 0 : parent.height /     (gauge1.value - gauge1.minimumValue) * (gauge1.value - gauge1.minBarValue)
                 }
             }
        }
    }
}

Соответственно картинка следующая: введите сюда описание изображения

Но когда я хочу поставить текущее значение value например -1000 индикатор перестает работать. Я не могу понять где ошибка. Пожалуйста подскажите


Ответы (1 шт):

Автор решения: Alexander Chernin

Вот так все прекрасно работает:

import QtQuick 2.12
import QtQuick.Window 2.12
import QtCharts 2.3
import QtQuick.Extras 1.4


Window {
    visible: true
    width: 640
    height: 480
    title: qsTr("Hello World")

    Gauge {
        minimumValue: -40
        value: 0 // и от 0, и от -40 и так далее
        maximumValue: 40
        anchors.centerIn: parent
        formatValue: function(value) {
            return value.toFixed(0);
        }

        MouseArea {
            anchors.fill: parent
            acceptedButtons: Qt.LeftButton | Qt.RightButton
            onClicked: {
                if (mouse.button == Qt.LeftButton)
                    parent.value += 5;
                else
                    parent.value -= 5;
            }
        }

    }
}
→ Ссылка