Comment intercepter le changement de disposition du clavier

J’ai plusieurs problèmes:

  • Saisir l’événement de changement de disposition du clavier.
  • Obtenir la langue actuelle du clavier.
  • Changer la disposition du clavier de mon programme.

J’ai d’abord essayé ceci:

bool MyWindow::event(QEvent* e) { if (e->type() == QEvent::KeyboardLayoutChange) qDebug() << "Keyboard Layout Changed"; return QWidget::event(e); } 

Mais ce type d’événement n’est jamais passé. De plus, je ne sais pas comment résoudre les 2 autres problèmes.

Pourriez-vous s’il vous plaît me montrer un exemple pratique de la dernière version de Qt ou d’autres solutions multi-plateformes de ce problème?

Qt 5.0.2
Windows 7 Visual Studio 2012
Ubuntu 12.04 G ++ 4.7.0

Il n’existe pas de solution multiplate-forme permettant d’obtenir la langue du clavier ou de modifier sa disposition à partir de Qt. Vous aurez besoin de solutions spécifiques à la plate-forme: une pour Windows, une pour X11. Je suppose que dans le futur, vous aurez également besoin de Wayland.