QtQuick.Controls窗口之间的快捷方式上下文重叠

时间:2017-11-29 20:36:15

标签: qt qml

我正在开发一个QtQuickControls应用程序,我注意到有关Shortcut上下文的一些困难行为。使用QtQuick.Controls 2.0时,特定于窗口的快捷方式似乎相互覆盖。我的应用程序完全由键驱动,由多个页面/弹出窗口(工业控制面板)组成。由于其简单性和缺乏焦点管理,我决定使用Shortcuts。我知道我的实现是合法的,因为它适用于QtQuick.Controls 2.2。下面简要介绍了实施情况。

ApplicationWindow{
    id: mainWindow

    Shortcut{
        objectName: "menuButton"
        context: Qt.WindowShortcut
        sequence: "z"
        onActivated: {
            mainMenu.open()
        }
    }    
}

Popup{
    id: mainMenu
    anchors.fill: parent
    Rectangle{
        id: rectangle
        color: "#ffffff"
    }

    Shortcut{
        id: changeColor
        context: Qt.WindowShortcut
        sequence: "z"
        onActivated: {
            rectanlge.color = "steelblue"
        }
    }
}

这是一个粗略的实现,但我注意到,在第一次按下该序列后,具有相同序列的两个快捷键将相互抵消,即使它们的上下文是两个互斥的窗口。这是一个错误吗?有没有解决方法?这在Qt 5.9.0中使用QtQuick.Controls 2.2

1 个答案:

答案 0 :(得分:0)

修正了它。快捷方式具有enabled属性,可以切换,具体取决于弹出窗口何时可见。见这里:link