Qml 在快速快捷方式中处理修改器

Qml 在快速快捷方式中处理修改器,qml,qtquick2,qt-quick,qtquickcontrols2,qtquickcontrols,Qml,Qtquick2,Qt Quick,Qtquickcontrols2,Qtquickcontrols,比如说,我有一个简单快速的应用程序 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("a

比如说,我有一个简单快速的应用程序

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。。。任何修改器都不会发生任何事情。那么有没有办法只处理快捷方式中的修改器按下


我想我不能使用快捷键。onPressed是因为我想处理Alt键,无论现在关注哪个项目

这需要一种与快捷键稍有不同的方法,您可以使用附加的属性键


免责声明:由于修饰符有点不同,可能不会触发按下的信号,所以它很可能不起作用。在这种情况下,我希望我至少为您指出了正确的方向

文档说您可以编写sequence:Alt+I,但目前无法尝试


祝你有愉快的一天

如果你正在测试的是Windows,那么我认为没有办法在Windows上做到这一点。这也是我的应用程序的一个问题,在我的应用程序中,用户应该能够按住Alt键来使用颜色选择器。但在macOS和Ubuntu上运行良好

我的猜测是,它与alt是激活Windows菜单项的全局快捷方式有关。。虽然Ubuntu也是如此,而且在那里工作得很好

对于Windows上的Photoshop来说,这似乎也是一个问题,需要解决几个常见的问题:


这就是我要说的。甚至可以使用ifevent.key===Qt.key\u Alt,但是我想从现在焦点中的任何项目处理这个键。此外,我想在按下Alt键后将我的forceActiveFocus放在我的物品上……然后我认为这是不可行的。是的,我可以。但是我只需要Alt:祝你有愉快的一天!
Item {
    focus: true
    Keys.onPressed: { 
        if (event.modifiers & Qt.AltModifier)
             console.log("alt activated")
    }
}