【发布时间】:2012-07-01 15:32:01
【问题描述】:
在 Qt 的 QKeyEvent 中,我可以通过检查 ev->key() 是否为 Qt::Key_Control 来检查是否按下了 Ctrl。但是如何区分左右 Ctrl 键呢?
Alt 和 Shift 键也需要同样的功能。
【问题讨论】:
-
您为什么需要这样做?这将是一个可用性噩梦。对于用户来说,这些键是相同的,您可以根据当时离您最近的手指更近的那个键来使用它们。这样的事情只对游戏有意义。这是游戏吗?
-
@KubaOber 一个用例是键盘快捷键。例如 Left Alt+Shift 在 Windows 上更改键盘。这里的区别很重要。
-
@Andrew-Dufresne 这有多重要?操作系统处理键盘切换快捷键,应用程序对此无能为力。它只会收到右 Alt,永远不会离开。让它能够区分两者不会改变行为,所以没有意义。
-
@KubaOber 我正在使用 Qt 开发一个远程桌面应用程序。假设用户从本地 Windows 机器连接到远程 Windows 机器。他想在远程机器上切换键盘,使用键盘快捷键左 Alt+Shift。现在我的应用程序应该区分 Alt 和 Left Alt,以便远程端接收 Left Alt 而不仅仅是 Alt 键。这是一个区分很重要的用例。
标签: c++ qt events keyboard-events ctrl