2016-12-22 14 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があることを忘れました。私はQWidgetsをGUIに使用していません。私が試してみました: ショートカット{ シーケンス:StandardKey.Find コンテキスト:Qt.ApplicationShortcut はonActivated:はconsole.log( "見つける...") } しかし、 'アクティブ化は' のみ(CTRL + Fと呼ばれています言語に依存しない) – Diego

関連する問題