如何捕捉键盘布局的变化

时间:2013-06-27 15:08:30

标签: c++ qt qt5

我有几个问题:

  • 抓住键盘布局更改事件。
  • 获取当前的键盘语言。
  • 从我的程序更改键盘布局。

我先试了这个:

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

    return QWidget::event(e);
}

但是这种类型的事件永远不会传递。另外,我不知道如何解决其他两个问题。

您能否告诉我有关最新Qt版本或其他一些跨平台解决方案的可行示例?

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

1 个答案:

答案 0 :(得分:0)

没有跨平台解决方案来获取键盘语言或从Qt中更改其布局。您需要特定于平台的解决方案:一个用于Windows,一个用于X11。在未来你也需要Wayland,我猜想。