2

用 Qt 处理非拉丁键的方法是什么?

例如,对于“W”键按下 QKeyEvent::key() 返回 87,但对于“Ц” - 俄语布局中的相同键 - 它返回 1062。

所以我不能使用像 Qt::Key_W 这样的常量来检查哪个键被按下:如果用户切换布局,它们将不起作用。

谢谢

4

1 回答 1

2

键的含义取决于当前选择的布局。你观察到的是正确的。如果您在任何其他应用程序中按下该键,您将不会得到 W,而是 Ц (C)。

一个给定的键Qt::Key_W仅意味着它位于产生 Roman 的布局中W

如果您打算引用物理键,您可以尝试使用QKeyEvent::nativeScanCode()and/or QKeyEvent::nativeVirtualKey()。当然,这些值取决于平台。

于 2015-06-26T14:39:01.853 回答