Navigation QML加载程序选项卡导航异常
第一次按“Tab”键,在四个控件之间成功导航。但自从第二次以来,button1无法聚焦 第一次,导航链: 复选框1->复选框2->按钮1->按钮2 自第二次以来,导航链: 复选框1->复选框2->按钮2 为什么? //////////////////////////////// 代码: //main.qmlNavigation QML加载程序选项卡导航异常,navigation,qml,loader,Navigation,Qml,Loader,第一次按“Tab”键,在四个控件之间成功导航。但自从第二次以来,button1无法聚焦 第一次,导航链: 复选框1->复选框2->按钮1->按钮2 自第二次以来,导航链: 复选框1->复选框2->按钮2 为什么? //////////////////////////////// 代码: //main.qml import QtQuick 2.5 import QtQuick.Controls 1.4 import QtQuick.Dialogs 1.2 ApplicationWindow {
import QtQuick 2.5
import QtQuick.Controls 1.4
import QtQuick.Dialogs 1.2
ApplicationWindow {
visible: true
width: 640
height: 480
title: qsTr("Hello World")
Item {
anchors.fill: parent
Column {
CheckBox {
id: checkbox1
text: "checkbox1"
focus: true
KeyNavigation.tab: checkbox2
}
CheckBox {
id: checkbox2
text: "checkbox2"
focus: true
KeyNavigation.tab: loadItem
}
Loader {
id: loadItem
width: 100
height: 40
source: "OtherItem.qml"
focus: true
KeyNavigation.tab: checkbox1
}
}
}
}
// OtherItem.qml
import QtQuick 2.5
import QtQuick.Controls 1.4
import QtQuick.Dialogs 1.2
Item {
anchors.fill: parent
Row {
Button {
id: button1
text: "button1"
focus: true
KeyNavigation.tab: button2
Keys.onReturnPressed: {
console.log("button1 enter");
}
}
Button {
id: button2
text: "button2"
focus: true
Keys.onReturnPressed: {
console.log("button2 enter");
}
}
}
}
删除所有不必要的
KeyNavigation。tab
和focus:true
解决了这个问题。YouTube上有一篇关于KeyNavigation的演讲:这可能会对正确使用聚焦镜
以及属性
focus的实际含义提供有用的见解。似乎你对后者有着深刻的误解;-)谢谢大家。删除不必要的焦点,并将焦点范围作为OtherItem.qml根对象,解决问题:谢谢大家。移除不必要的焦点,并将焦点范围作为OtherItem.qml根对象(FocusScope OnActiviefFocusChanged set button1 focus true),解决该问题