Задержка выделения кнопки прямоугольника 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 } }

Другие вопросы по тегам