M
Мамыр 3, 2021, 11:13 Т.Ж.

Qt/QML/Android(navigation button) - Стандартные клавиши навигации Андроид

QtCreator, qml button android

Здравствуйте, пытаюсь заставить работать стандартную андроид-клавишу "назад", пытался разными способоами, они приведены в закомментированном коде. В том числе использовал https://evileg.com/ru/forum/topic/826/, но ни чего не помогло. ОС Fedora 33 QtCreator 6.

В моем примере кода работает BackButton, при ее нажатии вызывается метод pop() StackView id: testsPageStackView. И данная страница id: firstClassPage, код которой приведен ниже, удаляется из StackView id: testsPageStackView. То же самое должно происходить и при нажатии навигационной кнопки Андроида, но приложение просто закрывается.

Вот мой код:

import QtQuick 2.12
import QtQuick.Controls 2.12

Page {
    id: firstClassPage
    anchors.fill: parent

    BackButton {
        height: parent.height / 13
        width: height
        anchors.top: parent.top
        anchors.left: parent.left
        onClicked: {
            testsPageStackView.pop()
        }
    }



    focus: true

    Action {
        shortcut: StandardKey.Back
        onTriggered: testsPageStackView.pop();
    }


  //
  ////*****************************************************************************************
  //
  //Coponent.onCompleted: {
  //      firstClassPage.Keys.released.connect(function(event) {
  //          if (event.key === StandardKey.Back) {
  //              event.accepted = true
  //              testsPageStackView.pop();
  //          }
  //      })
  //  }
  //
  ////*****************************************************************************************
  //
  // Keys.onPressed: {
  // if (event.key === StandardKey.Back) {
  //     testsPageStackView.pop()
  //     event.accepted = false;
  //    }
  // }
  //
  ////*****************************************************************************************
  //
  //Keys.onReleased: {
  //            if (event.matches(StandardKey.Back)) {
  //                testsPageStackView.pop();
  //                event.accepted = false;
  //            }
  //        }
  //
  ////*****************************************************************************************
  //
  //Keys.onBackPressed: {
  //    testsPageStackView.pop();
  //    close.accepted = true;
  //}
}

1

Ол саған ұнайды ма? Әлеуметтік желілерде бөлісіңіз!

0

Пікірлер

Тек рұқсаты бар пайдаланушылар ғана пікір қалдыра алады.
Кіріңіз немесе Тіркеліңіз