Max*_*aev 7 keyboard-layout qt
最近在我的 Ubuntu 13.10 中使用 Unity 更新后出现的问题。
在 Qt Creator 3.0.1 或我自己用 Qt 5.2.1 编译的程序(来自 qt-project.org)中键入内容时,我无法更改键盘布局。例如,如果当前布局是En
在我启动程序时,那么即使我切换到俄语,也只会在其中输入英文字母。如果我按Alt
+ Shift
,托盘图标会从En
变为Ru
,它适用于大多数程序,但不适用于某些 Qt 程序。要更改布局,我必须重新启动程序或在另一个程序的输入字段中使用复制粘贴!
并非所有 Qt 程序都有这个问题——例如,KDevelop 没有。
将 Ubuntu 从 13.10 升级到 14.04 beta 并没有解决这个问题(虽然它修复了另一个错误,影响了 LibreOffice 中俄语布局的快捷方式)。
什么会导致这种奇怪的行为?
看起来这是 Qt 事件处理系统中用于更改 keynoard 布局的错误:bugzilla link。
Gatis Paeglis 添加了一条评论 - 03/Dec/13 1:47 PM 这不是 Qt 中的错误,正如开发人员在https://mail.gnome.org/archives/desktop-devel-list/2013-September/中所建议的那样msg00046.html 相同的资源表明问题的原因是 Qt 不侦听 XkbNewKeyboardNotify 事件 - 这是错误的。XkbNewKeyboardNotify 与键盘布局更改无关。XkbNewKeyboardNotify 事件在实际硬件连接或断开连接时触发,而不是在键盘布局更改时触发。实际问题是在 Xlib 中,如https://bugs.freedesktop.org/show_bug.cgi?id=23202和https://bugreports.qt-project.org/browse/QTBUG-30911中所建议的。我们希望有一天 xcb 平台插件不再需要 Xlib 的依赖,这将允许我们直接使用 xcb 事件循环。这也应该解决“键盘布局检测”问题。这是关于xcb插件中Xlib依赖的讨论http://lists.qt-project.org/pipermail/development/2013-July/011965.html
正如所说,它仅影响基于 GTK 的桌面环境,因此您可能需要切换到 KDE。你可以这样做:
sudo apt-get install kubuntu-desktop
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
2370 次 |
最近记录: |