Задержка выделения кнопки прямоугольника QML
У меня есть список кнопок, которые я хочу выделить отдельно, когда пользователь нажимает его, пока он не будет выпущен.
Проблема в том, что при прокрутке списка первая нажатая кнопка будет выделена, даже если вы касались ее в течение миллисекунды. Это не выглядит хорошо, поэтому я хочу добавить задержку для анимации выделения.
небольшая задержка, прежде чем анимация подсветки произойдет, вероятно, исправит эту косметическую проблему, я полагаю.
Как добавить задержку для анимации выделения?
Я пытался что-то вроде:
Rectangle {
id: folderButton
property bool pressed: false
signal clicked
height: mainWindoww.height * 0.1
width: parent.width
color: pressed ? "lightgrey" : "white"
function release() {
autoRepeatClicks.stop()
folderButton.pressed = false
}
SequentialAnimation on pressed {
id: autoRepeatClicks
running: false
PropertyAction { target: folderButton; property: "pressed"; value: true }
ScriptAction { script: folderButton.clicked() }
PauseAnimation { duration: 1000 }
SequentialAnimation {
loops: Animation.Infinite
ScriptAction { script: folderButton.clicked() }
PauseAnimation { duration: 500 }
}
}
MouseArea {
anchors.fill: parent
onPressed: autoRepeatClicks.start()
onReleased: folderButton.release()
onCanceled: folderButton.release()
}
}
но кажется, что этот код не добавляет никакой разницы во времени
2 ответа
Вы можете использовать Timer
для достижения этой цели. Например, вы можете сделать:
Item {
Timer {
interval: 500;
running: true;
repeat: true
onTriggered: time.text = Date().toString()
}
Text { id: time }
}
Если вы просто хотите анимировать свойство цвета, попробуйте что-то вроде:
Behavior on color { ColorAnimation { duration: 1000 } }