c++ - 如何捕捉键盘布局变化

标签 c++ qt qt5

我有几个问题:

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

我首先尝试了这个:

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

    return QWidget::event(e);
}

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

能否请您向我展示有关此问题的最新 Qt 版本或其他跨平台解决方案的任何可行示例?

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

最佳答案

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

关于c++ - 如何捕捉键盘布局变化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17346849/

相关文章:

c++ - 是否可以在类定义中使用 if 语句?

c++ - 非常量引用的无效初始化

c++ - 用函数参数实现c++函数指针

c++正确删除结构和指针

c++ - Qt中的多级继承

python - 如何使用 Qt.UserRole 对 Qt QListview 中的项目进行排序

python - PyQt4 菜单操作向 QTabWidget 添加新选项卡

c++ - 在QT中,如何在收到子部件产生的信号后从父部件中删除子部件?

ubuntu - 使用 Qt4 或 Qt5 编译的环境变量?

windows - 在 Windows 7 上使用 Qt 5.1 和 jom 进行多核编译失败