Как изменить язык ввода, когда запись фокусируется в Gtk Python
Я хочу изменить язык ввода, когда запись фокусируется (или отображается диалоговое окно) в Gtk Python. В моей программе диалоговое окно появляется много раз, и пользователь должен ввести некоторые тексты. В системах, которые допускают различную раскладку клавиатуры для каждого окна, пользователь должен менять язык ввода каждый раз, когда появляется диалоговое окно. Я программирую на Ubuntu ...
1 ответ
Моим первым подходом было посмотреть на методы ввода Gtk+.
Gtk.Entry
имеет свойство im_module
, который может быть использован для установки Gtk.IMContext
, Также есть два поста блога ( 1, 2) и обширный ответ Stackru о методах ввода Gtk+, которые могут вам помочь.
Мой второй подход заключался в использовании 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 кажется мне самым простым способом.