Muszę to zrobić, aby skonfigurować moją aplikację. Mam pole QLineEdit z reimplementowaną metodą keyPressEvent.Jak mogę przechwycić QKeySequence z QKeyEvent w zależności od aktualnego układu klawiatury?
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);
Ale to rozwiązanie może tworzyć skróty tylko z angielskimi znakami. Na przykład, gdy używam rosyjskiego układu klawiatury, ten kod wyświetli tę samą sekwencję, ale z angielskim char, umieszczonym na tym samym klawiszu klawiatury.
Chcę użytkownik może ustawić własne skróty do działania. –