Ошибка связующего цикла при попытке увеличить прогресс - PullRequest
0 голосов
/ 22 апреля 2019

Я пытаюсь показать постепенные изменения на индикаторе выполнения, щелкая область мыши. Приведенный ниже код компилирует и изменяет значение индикатора выполнения с 0 до 0,25 после нажатия области мыши. Но изменение не является постоянным. Я пытаюсь увеличить текущий каждый клик на 0,25. Я знаю, что мой код устанавливает только положительное значение .25 каждый клик. Я просто в растерянности из-за того, как я могу увеличить изменение в индикаторе выполнения без глобальных переменных. Я включил переход, чтобы гарантировать, что изменение состояния было необратимым, код все еще компилируется и выполняется так же. Есть две проблемы.

  1. Мои изменения не являются постоянными в видимой строке прогресса
  2. Мои приращения не увеличивают общее значение, они являются присвоениями в единственном числе
ProgressBar{
    id: progressBar
    height: 20
    anchors.top: parent.top
    anchors.topMargin: 100
    anchors.horizontalCenter: parent.horizontalCenter
    opacity: 1
    value: 0
    states: State{
        name: "PressedAlso"
        when: mouseArea.pressed == true
        PropertyChanges{
            target: progressBar
            value: + 0.25
        }

    }

    transitions: Transition {
                from: ""; to: "PressedAlso"; reversible: false
    }
}

1 Ответ

1 голос
/ 22 апреля 2019

Ваше состояние PressedAlso означает: при нажатии кнопки мыши значение равно 0,25.В противном случае значение неявно равно 0.

Если вы хотите увеличить значение на 0,25 нажатием кнопки мыши, вы можете использовать свойство onPressed в своем MouseArea:

MouseArea {
  anchors.fill: parent
  id: mouseArea
  onPressed: progressBar.value += 1
}
...