首页 > 解决方案 > 当模态对话框处于活动状态时,快捷方式处于活动状态

问题描述

我有一个带有两个菜单项的 QML 应用程序:

奇怪的是,当显示打开文件对话框时,快捷方式仍然处于活动状态。这使得无法使用向上箭头选择给定文件,例如,因为快捷方式绑定到另一个操作。

在常规的Qt小部件应用程序中,当模式对话框出现在屏幕上时,不会处理菜单快捷方式。

import QtQuick 2.12
import QtQuick.Window 2.12
import Qt.labs.platform 1.1

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

    FileDialog {
        id: fileDialog
    }

    MenuBar {
        Menu {
            title: qsTr("File")
            MenuItem {
                text: qsTr("Open")
                shortcut: StandardKey.Open
                onTriggered: fileDialog.open()
            }
        }
        Menu {
            title: qsTr("Control")
            MenuItem {
                text: qsTr("Up")
                shortcut: "Up"
                onTriggered: console.log("up!")
            }
        }
    }
}

我在macOS 10.14.4上使用Qt 5.12.3

标签: macosqtqml

解决方案


我没有Mac,所以这是在黑暗中拍摄的。您是否尝试过将注意力集中在FileDialog?

FileDialog {
   id: fileDialog
   Item {
     id: focus
   }
   onVisibleChanged: if(visible) focus.forceActiveFocus()
}

这将强制将重点放在FileDialog作为 的父级上focus


推荐阅读