2016-12-22 10 views
0

큰 텍스트의 QT 응용 프로그램이 있는데이 기능에 대한 시스템 바로 가기를 클릭하면 '검색'상자가 표시됩니다. 그러나이 바로 가기는 현재 시스템 언어에 따라 다릅니다. 예를 들어 Windows + 영어에서는 Search = "CRTL + F"를 의미하지만 Windows + 스페인어에서는 Search = "CRTL + B"를 의미합니다.언어에 따른 시스템 바로 가기

이 문제를 어떻게 관리하고 언어에 따라 좋은 Shorcut를 감지 할 수 있습니까? 사용자가 CRTL + F를 누를 때 나는 '검색'상자를 열고 싶습니다 (시스템은 영어로되어있는 경우), 또는 사용자는 CTRL + B를 누를 때 사전에

감사합니다, 디에고

(시스템은 스페인어 인 경우)

답변

1
QShortcut* shortcut = new QShortcut(this); 
shortcut->setContext(Qt::ApplicationShortcut); 

QLocale::Language lang = QLocale::system().language(); 

switch (lang) 
{ 
case QLocale::English: 
     shortcut->setKey(QKeySequence(Qt::CTRL + Qt::Key_F)); 
    break; 

case QLocale::Spain: 
     shortcut->setKey(QKeySequence(Qt::CTRL + Qt::Key_B)); 
    break; 

default: 
     // or simply assign platform's standard key binding 
     shortcut->setKey(QKeySequence::Find); 
break; 
} 

connect(shortcut, &QShortcut::activated, this, &MyClass::my_slot); 
+0

응답 해 주셔서 감사합니다. 내 응용 프로그램에 QML이 있다는 것을 유감스럽게 생각합니다. GUI 용 QWidgets을 사용하지 않습니다. { 순서 : 컨텍스트를 StandardKey.Find : Qt.ApplicationShortcut onActivated : CONSOLE.LOG를 ("찾기 ...") } 바로 가기 : 나는 시도 그러나 '활성화'만 CTRL + F를 호출합니다 (언어에 의존하지 않음) – Diego