Qt QML2应用程序窗口键处理

Qt QML2应用程序窗口键处理,qt,event-handling,window,key,qml,Qt,Event Handling,Window,Key,Qml,在QtQuick.Controls组件的应用程序窗口中,是否有任何方法可以处理按键事件?Qt5.3的文件没有提供任何方法。此外,它还表示,键仅存在于项-对象中。当我尝试处理按键事件时,它会显示“无法将按键属性附加到:ApplicationWindow_QMLTYPE_16(0x31ab890)不是项”: 也许这会有帮助。 使用快捷方式不需要设置焦点 ApplicationWindow { id: mainWindow Shortcut { sequence: "

QtQuick.Controls
组件的应用程序窗口中,是否有任何方法可以处理按键事件?Qt5.3的文件没有提供任何方法。此外,它还表示,
仅存在于
-对象中。当我尝试处理按键事件时,它会显示“无法将按键属性附加到:ApplicationWindow_QMLTYPE_16(0x31ab890)不是项”

也许这会有帮助。 使用
快捷方式
不需要设置
焦点

ApplicationWindow {
    id: mainWindow

    Shortcut {
        sequence: "Esc"
        onActivated: mainWindow.close()
        }
    }
}

我尝试过你的解决方案,但也尝试过创建
TextField
。当焦点位于
TextField
时,您的解决方案不起作用,因为此时它有
focus:false
。您的解决方案仅在
ApplicationWindow
中没有也可以聚焦的内容时有效。我已编辑该问题以包含此文本字段。@Victor Polevoy所有控件都应该是该项的子项
ApplicationWindow {
id: mainWindow
  Item {
    focus: true
    Keys.onEscapePressed: {
      mainWindow.close()
      event.accepted = true;
    }
  TextField {}
  }
}
ApplicationWindow {
    id: mainWindow

    Shortcut {
        sequence: "Esc"
        onActivated: mainWindow.close()
        }
    }
}