import QtQuick 2.12
import QtQuick.Window 2.12
Window {
visible: true
width: 640
height: 480
title: qsTr("Hello World")
Item {
id: item1
Keys.onPressed: (event)=>
{
print("item1 onPressed")
}
Keys.onReleased: (event)=>
{
print("item1 onReleased")
}
Item {
id: item2
focus: true
Keys.onPressed: (event)=>
{
event.accepted = true
if(event.key === Qt.Key_W) {
print("W")
}
else if(event.key === Qt.Key_Q) {
print("Q")
}
else if(event.key === Qt.Key_Left) {
print("Left")
}
// 组合键
if (event.modifiers & Qt.AltModifier) {
print("Alt")
}
if ((event.modifiers & Qt.AltModifier) && event.key == Qt.Key_P) {
print("Alt+P")
}
if ((event.modifiers & Qt.ControlModifier) && (event.modifiers & Qt.AltModifier) && event.key === Qt.Key_A) {
print("Ctrl+Alt+A")
}
}
}
}
}
处理优先级设置
import QtQuick 2.12
import QtQuick.Window 2.12
Window {
visible: true
width: 640
height: 480
title: qsTr("Hello World")
Item {
id: item1
Keys.onPressed: (event)=>
{
print("item1 onPressed")
}
Keys.onReleased: (event)=>
{
print("item1 onReleased")
}
// 设置优先级使用 Keys.priority Keys.AfterItem
Item {
id: item2
// focus: true
Keys.onPressed: (event)=>
{
// event.accepted = true // 接受事件,按键事件停止传播
if(event.key === Qt.Key_W) {
print("W")
}
else if(event.key === Qt.Key_Q) {
print("Q")
}
else if(event.key === Qt.Key_Left) {
print("Left")
}
// 组合键
if (event.modifiers & Qt.AltModifier) {
print("Alt")
}
if ((event.modifiers & Qt.AltModifier) && event.key == Qt.Key_P) {
print("Alt+P")
}
if ((event.modifiers & Qt.ControlModifier) && (event.modifiers & Qt.AltModifier) && event.key === Qt.Key_A) {
print("Ctrl+Alt+A")
}
}
TextInput {
focus: true
width: 200
height: 50
Keys.onPressed: (event)=>
{
print("TextInput onPressed")
}
Keys.forwardTo: [item1, item2] // 优先执行
}
}
}
}
评论