【问题标题】:Microsoft IME disabled while in application在应用程序中禁用 Microsoft IME
【发布时间】:2017-08-13 13:39:42
【问题描述】:

我们需要我们的应用程序能够接受韩语/日语等语言作为输入。

但是,如果我将键盘语言设置为韩语,那么在任务栏的右下角我会看到:

如果我尝试输入任何内容,它只是普通的英文字符。

在任何其他 Windows 应用程序(包括堆栈溢出)中,我可以输入这些字符(例如ㅔㄹㅎ),这就是任务栏的样子:

我正在使用 Qt 和 C++,有什么方法可以获得与任何其他应用程序相同的行为?

【问题讨论】:

    标签: c++ qt input globalization ime


    【解决方案1】:

    我们正在使用使用 OpenGL/DirectX 渲染的自定义文本编辑。在 Gl/Dx 小部件上,我需要添加 setAttribute(Qt::WA_InputMethodEnabled); 以启用 IME。

    【讨论】:

      【解决方案2】:

      尝试将 Qt 应用程序的 default locale 更改为您的目标语言。

      QLocate::setDefault(QLocale("ko_KR"));
      

      【讨论】:

      • 不幸的是,这没有帮助。我什至将我的操作系统语言设置为韩语,但仍然没有运气。如果这很重要,我们会在我们的应用中使用 QTranslator。
      • 您认为这可能与Qt::WA_InputMethodEnabled 有关吗? doc.qt.io/qt-5/qt.html#WidgetAttribute-enum
      • 看来你明白了!好的!我也会注意的。
      猜你喜欢
      • 2012-04-11
      • 1970-01-01
      • 2017-01-23
      • 1970-01-01
      • 2021-12-14
      • 1970-01-01
      • 1970-01-01
      • 2013-03-09
      • 1970-01-01
      相关资源
      最近更新 更多