【问题标题】:Shorcut StandardKey.PreviousChild not working on linux快捷方式标准 Key.Previous Child 无法在 linux 上运行
【发布时间】:2017-01-04 19:01:26
【问题描述】:

我正在尝试 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")
        }
    }

}

是不是我做错了什么?

【问题讨论】:

    标签: linux qt qml qtquick2


    【解决方案1】:

    我认为你没有做错任何事。它对我也不起作用。我读了这个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")
            }
        }
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2010-10-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-08-13
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多