系统快捷方式取决于语言

时间:2016-12-22 10:31:24

标签: qt system shortcut

我有一个带有大文本的QT应用程序,当用户单击此功能的系统快捷方式时,我想显示一个“搜索”框。但是这个快捷方式取决于当前的系统语言。我的意思是,例如,在Windows +英文中,Search =“CRTL + F”,但在Windows +西班牙语中,Search =“CRTL + B”。

如何管理此问题并根据语言检测到良好的短信?当用户按下CRTL + F(如果系统是英文),或者当用户按下CTRL + B(如果系统是西班牙语)时,我想打开“搜索”框。

提前致谢, 迭

1 个答案:

答案 0 :(得分: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);