2016-12-22 12 views
0

У меня есть приложение QT с большим текстом, и я хотел бы показать окно «Поиск», когда пользователь щелкает ярлык системы для этой функции. Но эти ярлыки зависят от текущего системного языка. Я имею в виду, например, в Windows + English, Search = "CRTL + F", но в Windows + Spanish, Search = "CRTL + B".Ярлык системы в зависимости от языка

Как я могу управлять этой проблемой и обнаруживать хороший shorcut в зависимости от языка? Я хотел бы открыть свое окно «Поиск», когда пользователь нажимает Ctrl + 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, я не использую QWidgets для GUI. Я пробовал: Ярлык { последовательность: StandardKey.Find контекст: Qt.ApplicationShortcut onActivated: console.log ("найти ...") } Но 'активированный' вызывается только с CTRL + F (не зависит от языка) – Diego