Здравствуйте! 

Как можно отследить, когда меняется раскладка клавиатуры, например с русского на английский, учитывая, что комбинация клавиш для этого может быть любой (мне удобнее lShift + lAlt, у кого то может быть своя)?
Я это делал через changeEvent() и проверку:
const int hexKeyLanguageRussian = 0x419;
const int hexKeyLanguageEnglish = 0x409;
QString getTheCurrentLanguageKeyboardLayouts()
{
    QString name;
#ifdef Q_WS_WIN    
    switch(LOWORD(GetKeyboardLayout(0)))
    {
    case hexKeyLanguageRussian:
        name = "Russian";
        break;
    case hexKeyLanguageEnglish:
        name = "English";
        break;
    }
#endif
    return name;
}
void changeEvent()
{
  QString language = getTheCurrentLanguageKeyboardLayouts();
  ....
}
Но моя реализация не самая умная идея 
