如何让用户使用 control + + 进行放大和 control + - 进行缩小?
Posted
技术标签:
【中文标题】如何让用户使用 control + + 进行放大和 control + - 进行缩小?【英文标题】:How can I let users use control + + for zoom in and control + - for zoom out? 【发布时间】:2018-12-14 08:26:31 【问题描述】:我下面的代码的问题是,在美国/英国键盘布局上,+
是用 shift + =
生成的,但是当用户同时使用 control 和 shift 修饰符时,不会生成 +
。这已经在 Mac 上测试过了。
Keys.onPressed:
if (event.modifiers & Qt.ControlModifier)
if (event.key === Qt.Key_Minus)
zoom(false)
event.accepted = true
else if (event.key === Qt.Key_Plus)
zoom(true)
event.accepted = true
由于control + +
和control + -
是放大应用程序的标准快捷方式,我确信其他人已经解决了这个问题。但是怎么做呢?
【问题讨论】:
【参考方案1】:使用Shortcut
及其sequence
property 代替Key.onPressed
:
Shortcut
sequence: StandardKey.ZoomIn
onActivated: zoom(true)
QKeySequence 文档的this section 中提到了您的问题。
【讨论】:
【参考方案2】:您必须使用Qt.ShiftModifier
对shift
键做出反应:
Item
focus: true
Keys.onPressed:
if ((event.key == Qt.Key_Plus) && (event.modifiers & Qt.ShiftModifier))
console.log("PRessed");
【讨论】:
这适用于美国/英国布局,但这不是通用解决方案。它不适用于加号在另一个键上的瑞典布局。理想情况下,我想要一个不需要我知道 + 在所有语言的所有键盘布局上的位置的解决方案。 @user1283776 啊,好的,我明白了。我认为这是不可能的。您可以为用户提供一个选项来配置特殊功能的键。以上是关于如何让用户使用 control + + 进行放大和 control + - 进行缩小?的主要内容,如果未能解决你的问题,请参考以下文章
C#怎么让画在picturebox中的图随鼠标滚轮放大缩小?
当用户在 Mozilla Firefox 上放大和缩小页面时,如何保持 <div> 的大小不变