无法通过快捷方式访问 QML 中的菜单项
Posted
技术标签:
【中文标题】无法通过快捷方式访问 QML 中的菜单项【英文标题】:Unable to access menu item in QML through shortcuts 【发布时间】:2021-01-03 11:28:29 【问题描述】:这是 QtQuick.Controls.12.2 的代码。它显示正确,但是当我按下 Ctrl 时没有任何反应。
我希望打印语句能够执行。我在这里做错了什么?
Menu
title: qsTr("File")
MenuItem
id: new_
text: "qqq"
onTriggered:
console.log("saasd")
action:
Action
shortcut: "Ctrl"
onTriggered: console.log("sad0asd")
contentItem:
Row
spacing: 70
Text
text: new_.text
font: menuItem.font
opacity: enabled ? 1.0 : 0.3
color: menuItem.highlighted ? "#ffffff" : "#21be2b"
Row
spacing: 5
Rectangle
color: "blue"; height: decoration.getHeight(15); width: height
Text
text: "Ctrl"
font: menuItem.font
opacity: enabled ? 1.0 : 0.3
color: new_.highlighted ? "#ffffff" : "#21be2b"
【问题讨论】:
【参考方案1】:确实,似乎无法使用单个修饰符 (Ctrl/Shift/...) 作为快捷方式值。
(See this similar question)
有效:
shortcut: "Ctrl+K" // modifier + key
shortcut: "K" // unique key
不会工作:
shortcut: "Ctrl"
shortcut: "Shift"
...
一种可能的解决方法是在菜单外捕捉按键:
Item
//...
focus: true
Keys.onPressed:
if (event.key === Qt.Key_Control)
console.log("sad0asd")
Menu
// ...
【讨论】:
你很有帮助。谢谢。以上是关于无法通过快捷方式访问 QML 中的菜单项的主要内容,如果未能解决你的问题,请参考以下文章