Есть ли способ определить текущую раскладку клавиатуры в Tkinter?
Необходимо правильно обрабатывать ускорители клавиатуры для таких языков, как русский, французский, греческий (см. Мой другой вопрос подробнее).
Есть ли способ определить текущую раскладку клавиатуры в Tkinter?
Необходимо правильно обрабатывать ускорители клавиатуры для таких языков, как русский, французский, греческий (см. Мой другой вопрос подробнее).
Нет, в Tkinter нет такой функции.
Почему бы просто не попросить ваше приложение спросить пользователя, где находится каждый специальный ключ, при первом запуске приложения? Apple делает это с OSX - он попросил меня нажать пару клавиш в самый первый раз, когда я загрузил новую установку.
Вы можете поместить фокус в виджет и привязать его к <Any-KeyPress>
, и из этого получить достаточно информации для привязки к любой нажатой клавише.
mc
под Linux, и это одна из худших вещей в Midnight Commander)
- person Antony Hatchkins; 23.01.2013
Кажется, что keysym
есть ?? если раскладка не английская.
def key_callback(e):
# Generate Ctrl-V if current layout is not english
if e.state & 4 > 0 and chr(e.keycode) == 'V' and e.keysym == "??":
root.focus_get().event_generate("<<Paste>>")
root.bind("<Key>", key_callback)
event.char
, но я не думаю, что это сработает. - person mmgp   schedule 23.01.2013event
и ни одно не соответствовало сканкоду (положению клавиши на клавиатуре) - person Antony Hatchkins   schedule 23.01.2013