我想分别Ctrl
+ Tab
和Ctrl
+ Shift
+以标签之间在我的应用程序(“前进”开关Tab
和“落后”来处理这两个关键事件)。但是,这似乎并不像预期的那样工作。处理关键事件Ctrl + Tab键和Ctrl + Shift + Tab键
这是我的当前代码(例如最小):按压Ctrl
+ Tab
当
import QtQuick 1.1
Item {
width: 100
height: 100
focus: true
Keys.onPressed: {
if(event.modifiers & Qt.ControlModifier) {
if(event.key === Qt.Key_Tab) {
if(event.modifiers & Qt.ShiftModifier)
console.log('backward')
else
console.log('forward')
}
}
}
}
我跑这段代码与qmlviewer
(Qt的版本4.8.2)
输出:
forward
forward
按下时的输出Ctrl
+ Shift
+ Tab
:
没有
所以我看到两个错误:前者按键顺序的两倍,而另一个没有得到处理。
- 编辑:的原因,另外一个没有得到根本的处理解决,看评论。
为什么会发生这种情况,我该如何解决这个问题?
注意:我已经在我的应用程序中使用了Qt Components for Desktop,所以如果您知道需要此模块的解决方案,那么可以。
好吧我猜问题是,Qt已经将'Shift' +'Tab'映射到'Qt :: Key_Backtab'而不是'Qt :: Key_Tab'。这解决了第二个问题,但不是关键事件被两次*接收的问题。 – leemes