Уведомления

Группа в Telegram: @pythonsu

#1 Янв. 5, 2010 20:48:48

frpaul
От:
Зарегистрирован: 2009-08-21
Сообщения: 29
Репутация: +  0  -
Профиль   Отправить e-mail  

[PyGTK] забиндить функцию

Не могу понять, как в сабже связать клавиатурную комбинацию (напр. ctl + s) с функцией. Кажется имеет отношение к accel_group, но я не понял как работает. Хелп.



Офлайн

#2 Янв. 6, 2010 08:41:55

.Serj.
От:
Зарегистрирован: 2008-09-27
Сообщения: 181
Репутация: +  0  -
Профиль   Отправить e-mail  

[PyGTK] забиндить функцию

Почитай pygtk tutorial. Там описано, как назначать action'ы и сочетания клавиш с помощью UIManager, Accell- и ActionGroup.



Офлайн

#3 Янв. 6, 2010 10:51:35

frpaul
От:
Зарегистрирован: 2009-08-21
Сообщения: 29
Репутация: +  0  -
Профиль   Отправить e-mail  

[PyGTK] забиндить функцию

.Serj.
Почитай pygtk tutorial. Там описано, как назначать action'ы и сочетания клавиш с помощью UIManager, Accell- и ActionGroup.
У меня уже башка трещит от технического английского. Читать, конечно, надо, но просветление приходит не сразу.
Я нашел решение упорным гуглением интернетов.

коллбэк функция:
def key_press_event_cb(widget, event):
from gtk.gdk import CONTROL_MASK
if event.state & CONTROL_MASK:
from gtk.gdk import keyval_name
if keyval_name(event.keyval) == "s":
print "You pressed control - s"
return True
return False
привязываем к окну:
window.connect("key-press-event",key_press_event_cb)
Альтернативы?



Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version