Дважды нажать кнопку «Назад» для выхода из приложения в qml?

#qt #qml

#qt #qml

Вопрос:

Как выйти из приложения, дважды нажав кнопку «Назад» на своем мобильном телефоне?

для возврата к предыдущей странице я сделал это

  Keys.onBackPressed: {
    stackView.push("previous.qml")
}
  

Ответ №1:

 Keys.onBackPressed: {
    timer.pressBack()
}
Timer{
    id: timer
    
    property bool backPressed: false
    repeat: false
    interval: 200//ms
    onTriggered: backPressed = false
    function pressBack(){
        if(backPressed){
            timer.stop()
            backPressed = false
            // leave application
            // your code
            leaveApp()
        }
        else{
            backPressed = true
            timer.start()
        }
    }
}
  

Для этого можно использовать таймер, в течение 50 мс, если вы дважды нажмете кнопку «Назад», запустится функция leaveApp().

Комментарии:

1. Я бы использовал для этого JS, я имею в виду сохранение data1 = new Date() при первом нажатии и вычисление интервала new Date().getTime() - data1.getTime() при втором.

2. Я пробовал этот код, но он не работает, когда я дважды нажимаю кнопку «Назад», ничего не происходит

3. 50 мс было слишком быстрым, я увеличил интервал до 200 мс. В конечном итоге вы можете адаптировать этот код для использования new Date() вместо Timer .