【问题标题】:get shift+numerical keys in qt using qkeyevent使用 qkeyevent 在 qt 中获取 shift+数字键
【发布时间】:2012-11-27 08:10:41
【问题描述】:

我正在使用 QKeyEvent 来获取 Shift+数字键,但它返回我的 ascii 为“!”而不是“1”所以我的问题是,是否有任何方法或技术来获取实际数值的 ascii 而不是“!”的 ascii (特殊字符)。我也关注了这个帖子:

Get key char (value) from keycode with shift modifier

但这似乎并不能帮助我摆脱这个问题。提前致谢。

【问题讨论】:

标签: qt qkeyevent


【解决方案1】:

我相信至少从 4.8 版开始,没有标准方法可以获取数字 ascii 值。您可以尝试类似于您链接的线程的蛮力方法。

if (e->modifiers() & Qt::ShiftModifier) {
    switch(e->text()) {
        case '!': 
            trans_key = '1';
        break;
    }
}

【讨论】:

  • 如果按键发生变化,因为不同的国家有不同的键盘按键怎么办?
  • 我没有其他键盘布局的经验,但一种可能的方法是使用 QApplication::keyboardInputLocale() 获取键盘布局的区域设置,这将返回一个 QLocale 对象,然后处理它分别为每个应用程序支持的布局。
  • 感谢 ajith 的所有时间。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-03-21
  • 1970-01-01
  • 2017-12-14
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多