我可以使用Qt检测QWERTY/AZERTY键盘吗?
问题描述:
我想根据键盘类型设置一些快捷方式,以便它始终是一行键(Q-W-E
或A-Z-E
)。这需要根据我知道的键盘类型对快捷方式进行硬编码。我可以使用Qt检测QWERTY/AZERTY键盘吗?
是否可以使用Qt检索这些信息?
答
你可以得到与http://doc.qt.io/qt-5/qinputmethod.html#locale-prop
喜欢的东西
QApplication a(argc, argv);
qDebug() << a.inputMethod()->locale();
或者
qDebug() << QLocale::system();
给我的键盘QLocale QLocale(法语,拉丁语,法国)和QLocale(法国,默认,法国)
略带偏移:我用来切换不同的键盘布局,我w如果根据快捷方式的不同布局,会发现令人困惑。此外,这会让使用不同布局的人难以谈论该计划。 “我使用了XY快捷键” - “什么?在我的版本中没有这样的快捷方式” – user463035818
@ tobi303有些时候你可能想强制执行某些组合键的布局。例如,在QWERTY键盘上的游戏中,按键W,S,A和D用作上,下,左,右。对于AZERTY键盘,你想保持布局,并重新映射到Z,S,Q和D. –
@BenjaminT我会称之为“快捷方式”,尽管我完全明白你的观点。我只是认为,一般来说,它不是很好,以ctrl + y替换例如ctrl + z只是为了在键盘上的相同位置有钥匙,无论OP案例是一个例外,我不知道 – user463035818