快捷方式 StandardKey.PreviousChild 在 linux 上不起作用

Shorcut StandardKey.PreviousChild not working on linux

我正在尝试 Ctrl+Shift+Tab 快捷键,但它不是在职的。 Linux 上的 Qt 5.7。显示问题的简单示例:

import QtQuick 2.7
import QtQuick.Controls 2.0
import QtQuick.Layouts 1.0

ApplicationWindow {
    visible: true
    width: 640
    height: 480
    title: qsTr("Hello World")

    Shortcut {
        sequence: StandardKey.PreviousChild
        onActivated: {
            console.log("prev child")
        }
    }

    Shortcut {
        sequence: StandardKey.NextChild
        onActivated: {
            console.log("next child")
        }
    }

}

我是不是做错了什么?

我认为你没有做错任何事。它对我也不起作用。我读了这个 http://doc-snapshots.qt.io/qt5-5.7/qkeysequence.html#keyboard-layout-issues 但还是无法解决。

我在全局键盘设置中也找不到 Ctrl+Shift+Tab 的快捷键组合。

当我像下面这样直接硬编码快捷键序列 sequence: "Ctrl+Shift+Tab" 时,以下 hack 对我有效。

import QtQuick 2.7
import QtQuick.Controls 2.0
import QtQuick.Layouts 1.0

ApplicationWindow {
    visible: true
    width: 640
    height: 480
    title: qsTr("Hello World")

    // Does not work
    Shortcut {
        sequence: StandardKey.PreviousChild
        onActivated: {
            console.log("prev child")
        }
    }

    // Works but it is a hack
    Shortcut {
        sequence: "Ctrl+Shift+Tab"
        onActivated: {
            console.log("hard coded pre child")
        }
    }

    Shortcut {
        sequence: StandardKey.NextChild
        onActivated: {
            console.log("next child")
        }
    }
}