【发布时间】:2018-02-02 23:32:48
【问题描述】:
我有一个接收扫描码的低级按键记录器,没有 QKeyEvent,因为 QApplication 没有焦点。可以使用系统特定的库调用将扫描码转换为关键符号。
扫描码对应Qt的QKeyEvent->nativeScanCode(),key syms对应QKeyEvent->nativeVirtualKey(),但是Qt的Qt::Key值似乎是独立映射的。我想获取给定的 Qt::Key 并转换为 sym 密钥或扫描代码,或者从 sym 密钥或扫描代码构造一个 Qt::Key,以便我可以将捕获的密钥与预先确定的密钥进行比较Qt::Key 的。
我见过其他项目通过实现大型、不完整的查找表ref1ref2 来做到这一点。当然,如果 Qt 正在收集扫描代码并从中构建 QtKey,它一定有一些内部映射吗?我想要一些方法来避免重复。是否有任何可访问的 Qt API 来从密钥符号或扫描代码构造 Qt::Keys,或者可以复制而不依赖外部项目的任何非公共 API Qt 代码?
【问题讨论】:
标签: qt keyboard keyboard-shortcuts x11