首页 > 解决方案 > 使用控制 + 加号和控制 - 减号进行缩放?

问题描述

我正在尝试在应用程序中实现缩放。用户应该能够使用control + plus/minus.

我希望这个工作

这就是我试图解决问题的方式

Keys.onPressed: {
    if (event.modifiers & Qt.ControlModifier) {
        var zoomX = event.modifiers & Qt.AltModifier ? false : true

        if (event.key === Qt.Key_Minus) {
            zoom(false, zoomX)
            event.accepted = true
        } else if (event.key === Qt.Key_Plus) {
            zoom(true, zoomX)
            event.accepted = true
        }
    }
}

但这还不够好。

shift + equal sign当我在具有英文键盘布局的 Mac 上按下时, event.key == 43 && event.key == Qt.Key_Plus. 都好。

但是当我按下command + shift + equal sign同一个键盘时,event.key == 61 && event.key == Qt.Key_Equal. 换句话说,控制修饰符覆盖了 shift 键,并且不再注册 plus 并且不调用缩放功能。

我尝试通过添加等号作为用于放大的替代 event.key 来解决此问题。但这并不能解决其他键盘布局上的问题,其中加号可以与其他字符共享一个键。

感觉就像我错过了谜题的一部分。我错过了什么?我怎么解决这个问题?

标签: qtqml

解决方案


推荐阅读