如何让用户使用 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.ShiftModifiershift 键做出反应:

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> 的大小不变

如何使用 UIScrollView 捕捉缩放?

Win10如何让光标上有一个放大镜,在使用应用程序的时候,光标走到哪儿,放大镜就跟到哪儿

如何使用在单击按钮上创建的用户触发放大和缩小绘图图表?