当条目在 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 对我来说似乎是最简单的方法。
我想在 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 对我来说似乎是最简单的方法。