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()
}
}
}