LINUX.ORG.RU

Как-то так:

root.bind("<Control-Key-o>", openfile)
где root — твое TK-шное окно. Только openfile должно быть с одним аргументом (его вполне можно игнорировать):
def openfile(event):
  ...

TeopeTuK ★★★★
()
Последнее исправление: TeopeTuK (всего исправлений: 2)

Как в TKinter - не знаю, а в самом tk это команды bind и bindtag. Непосрественно акселераторы создаются командой bind, ты можешь привязать непосредственно к виджету или к «пакету сочетаний кнопок», который называется bindtag. Смысл bindtag-а - в том, что он позволяет задавать приоритеты для биндингов. Это важно, поскольку обработчик Ctrl-O сам по себе отловит и Ctrl-Shift-O, и Ctrl-Alt-O. Поэтому я завожу несколько биндтагов - DoubleMod${ИмяВиджета} для сочетаний с двумя модификаторами, например, для <Control-Shift-H>; SingleMod${ИмяВиджета} для сочетаний с одним, например, для <Control-Key-O>; и NoMod${ИмяВиджета} для простых кнопок, таких, как <Key-F1>. Далее биндтаги привызываются к виджету с помощью команды bindtag, и их приоритет - по порядку указания, т.е. сначала нужно поставиться DoubleMod, потом SingleMod, потом NoMod.

Дальнейшие нюансы: есть проблемы с кириллицей, у меня есть функция ::clcon_key::b , но она довольно сложная. Ещё хуже то, что в последних версиях они норвят сломать международные буквы вообще и будет невозможно отловить некие (не помню какие) сочетания с кириллицей - я пропатчил tk и пользуюсь своим, но мне не нравится эта ситуация. Если для тебя это актуально - спрашивай.

Вот один из моих файлов, но надо вообще тебе скачать весь исходник, т.к. там всё делается не напрямую, а через обёртки.

den73 ★★★★★
()
Последнее исправление: den73 (всего исправлений: 4)
Ответ на: комментарий от den73

И ещё: когда будешь делать работу с буфером обмена, прочитай сначала вот это: http://www.tcl.tk/man/tcl/TkCmd/options.htm#M-exportselection

Советую тщательно и везде эту возможность отключить. Если не хочешь - ты должен чётко понимать, в каком она у тебя состоянии, иначе буфер обмена у тебя будет работать очень и очень странно.

И ещё: обрати внимание на цифровую клавиатуру - она себя ведёт по-разному на разных устройствах и в разных ОС.

den73 ★★★★★
()

Спасибо всем,вроде как разобрался

playX ★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.