当条目在 Gtk 中获得焦点时如何更改输入语言 Python

How to change the input language when an entry gets focused in Gtk Python

我想在 Gtk 中获得焦点(或显示对话框)时更改输入语言 Python。在我的程序中,多次出现一个对话框,用户必须输入一些文本。在每个 window 允许不同键盘布局的系统中,用户必须在每次出现对话框时更改输入语言。我正在编程 ubuntu ...

我的第一个方法是查看 Gtk+ 输入法。

Gtk.Entry 有 属性 im_module, which can be used to set the Gtk.IMContext。 还有两篇关于 Gtk+ 输入法的博文(1, 2) and an extensive Whosebug Answer 可能对你有帮助。

我的第二种方法是使用 xkb

你可以试试

subprocess.run('sudo setxkbmap -layout ' + entry_lang_str)

然后我想起来你也可以使用gsettings

gsettings set /org/gnome/desktop/input-sources/ sources [('xkb', entr_lang_str)](也来自 subprocess.run()

使用 gsettings 对我来说似乎是最简单的方法。