macos - 当模态对话框处于活动状态时,快捷方式处于活动状态
问题描述
我有一个带有两个菜单项的 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。
解决方案
我没有Mac,所以这是在黑暗中拍摄的。您是否尝试过将注意力集中在FileDialog
?
FileDialog {
id: fileDialog
Item {
id: focus
}
onVisibleChanged: if(visible) focus.forceActiveFocus()
}
这将强制将重点放在FileDialog
作为 的父级上focus
。
推荐阅读
- javascript - 如何在 Angular 应用程序中实现 Async 或 Promise(计算量大)
- python - 如何使用 Content-disposition 将 CSV 导出到 Flask 中的绝对路径?
- string - Delphi 是否支持将不同语言的字符串添加到资源中?
- python - 了解ConvLSTM在tensorflow中的实现
- redis - 关于 Redis SETNX 和处理死锁的问题
- r - 更新 R Shiny 中的行后更新绘图
- flutter - 带有时间线的颤振设计
- python-3.x - 如何在 Python 的函数中包含“if”和“for”循环?
- php - 我在哪里使用 REST API 在 wordpress 数据库中发布和存储简单的 JSON 数据?
- typescript - 有没有办法为 Svelte 商店的更新定义泛型?