Ярлык активен, когда модальный диалог активен - PullRequest
0 голосов
/ 26 апреля 2019

У меня есть приложение QML с двумя пунктами меню:

  • Файл / Открыть ... вызвать модальное диалоговое окно открытия файла
  • Control / Up просто зарегистрируйте что-то на консоли вывода. У этого элемента есть сочетание клавиш со стрелками вверх.

Как ни странно, ярлык все еще активен, когда отображается диалоговое окно открытия файла. Это делает невозможным использование стрелки вверх для выбора данного файла, например, поскольку ярлык привязан к другому действию.

В обычном приложении-виджете 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!")
            }
        }
    }
}

Я использую Qt 5.12.3 на macOS 10.14.4 .

1 Ответ

0 голосов
/ 27 апреля 2019

У меня нет Mac, так что это выстрел в темноте.Вы пытались навести фокус на FileDialog?

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

Это заставит фокус на FileDialog в качестве родителя focus.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...