#!/usr/bin/env python
import pygtk
pygtk.require('2.0')
import gtk
class tmpWin(gtk.Window):
def __init__(self, parent=None):
gtk.Window.__init__(self)
try:
self.set_screen(parent.get_screen())
except AttributeError:
self.connect('destroy', lambda *w: gtk.main_quit())
self.set_title(self.__class__.__name__)
self.set_border_width(8)
vb = gtk.VBox()
self.add(vb)
self.i=0
self.arr_event = []
self.arr_event.append(self.on_key_press_event)
self.arr_event.append(self.on_key_press_event_ex)
self.entry=gtk.Entry()
vb.pack_start(self.entry, False, False)
btn=gtk.Button("PressMe")
btn.connect("clicked", self.btn_cliked)
vb.pack_start(btn, False, False)
self.show_all()
def btn_cliked(self, btn):
self.entry.connect("key-press-event", self.arr_event[self.i])
btn.set_label("PressMe"+str(self.i))
if self.i == 0: self.i+=1
else: self.i = 0
def on_key_press_event(self, widget, key):
print self.i, "ONE"
def on_key_press_event_ex(self, widget, key):
print self.i, "TWO"
def main():
tmpWin()
gtk.main()
if __name__ == '__main__':
main()
при создании формы динамически создается виджет, к которому вешается событие, как по человечески это сотворить?