首页 > 解决方案 > 在 QtQuick Shortcut 中处理修饰符

问题描述

我有一个简单的 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 键(没有任何主键)。当我将“序列”属性设置为“Alt”(或“Ctrl”、“Shift”……任何修饰符)时,什么也没有发生。那么有什么方法可以只处理快捷方式中的修饰符按下吗?

我想我不能使用 Keys.onPressed 因为无论现在关注哪个 Item 我都想处理 Alt 键

标签: qmlqtquick2qt-quickqtquickcontrols2qtquickcontrols

解决方案


我不认为有办法在 Windows 上执行此操作,如果那是您正在测试的地方。这也是我的应用程序的一个问题,用户应该能够按住 Alt 来使用颜色选择器。不过在 macOS 和 Ubuntu 上运行良好。

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

对于 Windows 上的 Photoshop 来说,这似乎也是一个问题,有几个常见的黑客可以解决它:


推荐阅读