Как я могу захватить QKeySequence из QKeyEvent в зависимости от текущей раскладки клавиатуры?

Мне нужно сделать это для настройки моего приложения. У меня есть поле QLineEdit с переопределенным методом keyPressEvent.

QKeyEvent *ke = ...
QString txt;

if(ke->modifiers() & Qt::ControlModifier)
    txt += "Ctrl+";
if(ke->modifiers() & Qt::AltModifier)
    txt += "Alt+";
if(ke->modifiers() & Qt::ShiftModifier)
    txt += "Shift+";

if(ke->key() >= Qt::Key_0 && ke->key() <= Qt::Key_9)
    txt += ('0' + ke->key() - Qt::Key_0);
else if(ke->key() >= Qt::Key_A && ke->key() <= Qt::Key_Z)
    txt += ('A' + ke->key() - Qt::Key_A);
ui->hotkeyEdit->setText(txt);

Но это решение может создавать ярлыки только с английскими символами. Например, когда я использую русскую раскладку клавиатуры, этот код будет отображать ту же последовательность, но с английскими символами, размещенными на той же клавише клавиатуры.

11
задан Dmitriy Erlih 11 July 2011 в 09:11
поделиться