M
03 травня 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

Коментарі

Only authorized users can post comments.
Please, Log in or Sign up
  • Останні коментарі
  • Evgenii Legotckoi
    16 квітня 2025 р. 17:08
    Благодарю за отзыв. И вам желаю всяческих успехов!
  • IscanderChe
    12 квітня 2025 р. 17:12
    Добрый день. Спасибо Вам за этот проект и отдельно за ответы на форуме, которые мне очень помогли в некоммерческих пет-проектах. Профессиональным программистом я так и не стал, но узнал мно…
  • AK
    01 квітня 2025 р. 11:41
    Добрый день. В данный момент работаю над проектом, где необходимо выводить звук из программы в определенное аудиоустройство (колонки, наушники, виртуальный кабель и т.д). Пишу на Qt5.12.12 поско…
  • Evgenii Legotckoi
    09 березня 2025 р. 21:02
    К сожалению, я этого подсказать не могу, поскольку у меня нет необходимости в обходе блокировок и т.д. Поэтому я и не задавался решением этой проблемы. Ну выглядит так, что вам действитель…
  • VP
    09 березня 2025 р. 16:14
    Здравствуйте! Я устанавливал Qt6 из исходников а также Qt Creator по отдельности. Все компоненты, связанные с разработкой для Android, установлены. Кроме одного... Когда пытаюсь скомпилиров…