#!/usr/bin/env python import gtk import gobject class MyTextView(gtk.TextView): __gsignals__ = dict( mykeypress = (gobject.SIGNAL_RUN_LAST | gobject.SIGNAL_ACTION, None, # return value (str,)) # arguments ) if gobject.pygtk_version < (2, 8): gobject.type_register(MyTextView) gtk.binding_entry_add_signal(MyTextView, gtk.keysyms.f, gtk.gdk.CONTROL_MASK, 'mykeypress', str, 'ctrl+f') def activate_cb(tv, what): print 'You pressed', what tv = MyTextView() tv.connect('mykeypress', activate_cb) w = gtk.Window() w.add(tv) w.set_default_size(400, 300) w.show_all() w.connect('destroy', lambda w: gtk.main_quit()) gtk.main()