qt - 使用控制 + 加号和控制 - 减号进行缩放?
问题描述
我正在尝试在应用程序中实现缩放。用户应该能够使用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
}
}
}
但这还不够好。
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 来解决此问题。但这并不能解决其他键盘布局上的问题,其中加号可以与其他字符共享一个键。
感觉就像我错过了谜题的一部分。我错过了什么?我怎么解决这个问题?
解决方案
推荐阅读
- c++ - 用于查找二叉树高度的递归代码
- c# - 从 for 循环中断的用户输入
- ruby-on-rails - 在 Rails API 中存储图像并将其传递给 React App?
- php - if语句php中的宾格数组值
- javascript - 如果 Axios.get 响应数据良好,则 React setState
- python - Plotly express 在 Python 中绘制的意外附加线
- java - JavaFX 设置图像抛出 IllegalArgumentException
- ios - 在 iOS 13 上使用弹出手势弹出时出现白色闪烁
- flutter - 在 ListView 中定位小部件
- java - 初学者 Java 删除 ArrayList Java 问题中的对象