M
May 3, 2021, 11:13 a.m.

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

Do you like it? Share on social networks!

0

Comments

Only authorized users can post comments.
Please, Log in or Sign up
  • Last comments
  • Evgenii Legotckoi
    March 9, 2025, 9:02 p.m.
    К сожалению, я этого подсказать не могу, поскольку у меня нет необходимости в обходе блокировок и т.д. Поэтому я и не задавался решением этой проблемы. Ну выглядит так, что вам действитель…
  • VP
    March 9, 2025, 4:14 p.m.
    Здравствуйте! Я устанавливал Qt6 из исходников а также Qt Creator по отдельности. Все компоненты, связанные с разработкой для Android, установлены. Кроме одного... Когда пытаюсь скомпилиров…
  • ИМ
    Nov. 22, 2024, 9:51 p.m.
    Добрый вечер Евгений! Я сделал себе авторизацию аналогичную вашей, все работает, кроме возврата к предидущей странице. Редеректит всегда на главную, хотя в логах сервера вижу запросы на правильн…
  • Evgenii Legotckoi
    Oct. 31, 2024, 11:37 p.m.
    Добрый день. Да, можно. Либо через такие же плагины, либо с постобработкой через python библиотеку Beautiful Soup
  • A
    Oct. 19, 2024, 5:19 p.m.
    Подскажите как это запустить? Я не шарю в программировании и кодинге. Скачал и установаил Qt, но куча ошибок выдается и не запустить. А очень надо fb3 переконвертировать в html