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. То же самое должно происходить и при нажатии навигационной кнопки Андроида, но приложение просто закрывается.

Вот мой код:

  1. import QtQuick 2.12
  2. import QtQuick.Controls 2.12
  3.  
  4. Page {
  5. id: firstClassPage
  6. anchors.fill: parent
  7.  
  8. BackButton {
  9. height: parent.height / 13
  10. width: height
  11. anchors.top: parent.top
  12. anchors.left: parent.left
  13. onClicked: {
  14. testsPageStackView.pop()
  15. }
  16. }
  17.  
  18.  
  19.  
  20. focus: true
  21.  
  22. Action {
  23. shortcut: StandardKey.Back
  24. onTriggered: testsPageStackView.pop();
  25. }
  26.  
  27.  
  28. //
  29. ////*****************************************************************************************
  30. //
  31. //Coponent.onCompleted: {
  32. // firstClassPage.Keys.released.connect(function(event) {
  33. // if (event.key === StandardKey.Back) {
  34. // event.accepted = true
  35. // testsPageStackView.pop();
  36. // }
  37. // })
  38. // }
  39. //
  40. ////*****************************************************************************************
  41. //
  42. // Keys.onPressed: {
  43. // if (event.key === StandardKey.Back) {
  44. // testsPageStackView.pop()
  45. // event.accepted = false;
  46. // }
  47. // }
  48. //
  49. ////*****************************************************************************************
  50. //
  51. //Keys.onReleased: {
  52. // if (event.matches(StandardKey.Back)) {
  53. // testsPageStackView.pop();
  54. // event.accepted = false;
  55. // }
  56. // }
  57. //
  58. ////*****************************************************************************************
  59. //
  60. //Keys.onBackPressed: {
  61. // testsPageStackView.pop();
  62. // close.accepted = true;
  63. //}
  64. }
  65.  
1

Вам это нравится? Поделитесь в социальных сетях!

0

Комментарии

Только авторизованные пользователи могут публиковать комментарии.
Пожалуйста, авторизуйтесь или зарегистрируйтесь