2017-10-16 6 views
0

키보드 유형에 따라 몇 가지 바로 가기를 설정하여 항상 키 행 (Q-W-E 또는 A-Z-E)이되도록합니다. 내가 알고있는 키보드 유형에 따라 단축키를 하드 코드해야 할 것입니다.Qt에서 QWERTY/AZERTY 키보드를 감지 할 수 있습니까?

Qt에서이 정보를 검색 할 수 있습니까?

+1

약간 offtopic : 다른 키보드 레이아웃 사이를 전환하는 데 사용됩니다. 레이아웃에 따라 단축키가 다른 경우 혼란 스럽습니다. 또한 다른 레이아웃을 사용하는 사람들이 프로그램에 관해 이야기하기가 어려울 수 있습니다. "저는 XY 단축키를 사용했습니다"- "무엇을? 내 버전에는 그런 단축키가 없습니다" – user463035818

+0

@ tobi303 어떤 경우에는 일부 키 조합의 레이아웃을 적용하려고 할 수 있습니다. 예를 들어 쿼티 (QWERTY) 키보드에서 W, S, A 및 D 키가 위, 아래, 왼쪽, 오른쪽으로 사용되는 게임의 경우. AZERTY 키보드의 경우 레이아웃을 유지하고 Z, S, Q 및 D로 다시 매핑하십시오. –

+0

@BenjaminT 내가 "바로 가기"라고 부르 겠지만 완전히 요점을 얻었습니다. 난 그저 일반적으로 키보드를 같은 장소에서 열쇠를 가지고 예를 Ctrl 키를 + CT를 대신 Ctrl 키를 + Y로 바꾸는 것이 좋지 않다고 생각합니다. OP 케이스는 예외가 아닙니다. – user463035818

답변

2

당신은

qDebug() << QLocale::system(); 

가 줘 http://doc.qt.io/qt-5/qinputmethod.html#locale-prop

뭔가

QApplication a(argc, argv); 
qDebug() << a.inputMethod()->locale(); 

또는

등으로 키보드 QLocale를 얻을 수 QLocale (프랑스어, 라틴어, 프랑스)와 QLocale (프랑스어, 기본, 프랑스)

+0

그래서 QWERTY를 사용하는 * 언어 + 국가 * 로케일을 비교해야합니까? 나는 그것이 작동 할 것 같지만 당신이 많은 나라에서 배포하고 싶다면 유지하기가 매우 어렵습니다. – ymoreau

+0

편집 : AZERTY를 사용하는 국가의 목록은 기본적으로 프랑스와 몇몇 사용자 정의 레이아웃으로 제한되어 있으므로 이것을 점검하고 나머지는 QWERTY로 간주 할 수 있습니다. 고마워 ! – ymoreau

+0

이런 일을 할 필요가 전혀 없었습니다. 그냥 힌트를 드리겠습니다. –