Navigation QML加载程序选项卡导航异常

Navigation 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 {

第一次按“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 {
    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),解决该问题