用控制+加号和控制-减号缩放?

时间:2018-12-13 17:04:35

标签: qt qml

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

我希望这个工作

  • 这应该可以在Windows,MacOS,Linux上运行
  • 不同的键盘布局

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

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
        }
    }
}

但这还不够好。

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

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

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

感觉就像我缺少拼图的某些部分。我想念什么?我该如何解决这个问题?

0 个答案:

没有答案