Навигация по клавише Назад не работает, даже если фокус установлен на true
В моем приложении Qt Android я помещаю элемент из меню в StackView:
import QtQuick 2.0
import QtQuick.Controls 1.0
ApplicationWindow
{
menuBar: MenuBar
{
Menu
{
title: qsTr("Menu")
MenuItem
{
text: qsTr("Push page")
onTriggered: stackView.push("qrc:/qml/SecondPage.qml")
}
}
}
StackView
{
id: stackView
anchors.fill: parent
// Implements back key navigation
focus: true
initialItem: FirstPage
{
width: parent.width
height: parent.height
}
}
}
SecondPage.qml:
import QtQuick 2.0
import QtQuick.Controls 1.0
Item
{
width: parent.width
height: parent.height
// focus: true
Keys.onBackPressed: stackView.pop()
Label
{
anchors.centerIn: parent
text: "Some text"
font.pointSize: 32
color: "gray"
}
}
Хотя клавиша "Назад" закрывает все приложение. Я пытался добавить focus: true
туда, где это закомментировано и зовет event.accepted = true
в Keys.onBackPressed
, Почему нажатие клавиши назад игнорируется?
1 ответ
Решение
Я должен был поставить pop
заявление в StackView
сама, а не в дочернюю страницу:
StackView
{
id: stackView
anchors.fill: parent
// Implements back key navigation
focus: true
initialItem: FirstPage
{
width: parent.width
height: parent.height
}
Keys.onBackPressed: pop()
}