我有一个简单QtQuick应用,说
import QtQuick 2.12
import QtQuick.Window 2.12
Window {
visible: true
width: 640
height: 480
Shortcut {
sequence: "i"
context: Qt.ApplicationShortcut
onActivated: {
console.log("activated!")
}
}
}
当我按下“ I”键时,我看到“已激活!”在控制台中。但我的问题是我的应用程序应该响应Alt键(无任何主键)。当我将“ sequence”属性设置为“ Alt”(或“ Ctrl”,“ Shift”等任何修饰符)时,什么也不会发生。那么,有什么方法可以只处理快捷键中按下修饰符的情况?
我认为我不能使用Keys.onPressed,因为无论现在重点放在哪个项目上,我都想处理Alt键
答案 0 :(得分:1)
如果您正在测试Windows,我认为没有办法在Windows上实现。这对于我的应用程序也是一个问题,用户应该能够按住Alt才能使用颜色选择器。尽管在macOS和Ubuntu上也能正常工作。
我的猜测是,它与alt是用于在Windows上激活菜单项的全局快捷方式有关。尽管对于Ubuntu来说也是如此,并且在这里也可以正常工作。
例如,这似乎是一个问题。也可以在Windows上使用Photoshop,并有几种常见的解决方法:
答案 1 :(得分:0)
与Shortcut
相比,这需要一些不同的方法,您可以使用附加属性Keys
(http://doc.qt.io/qt-5/qml-qtquick-keyevent.html)
Item {
focus: true
Keys.onPressed: {
if (event.modifiers & Qt.AltModifier)
console.log("alt activated")
}
}
免责声明:由于修饰符有些不同并且可能不会触发pressed
信号,因此有少许机会无法使用。在这种情况下,我希望至少已将您指向正确的方向
答案 2 :(得分:0)
文档显示您可以编写sequence: "Alt+i"
,但目前无法尝试。...
祝你愉快