Hello. I have a DrawingArea that responds to keyboard event. I want that, when I press 1-9, an Entry pops up, in which I can type a number whose first digit is the digit that made the Entry pop up.
I have nearly succeeded, however when the Entry pops up the digit is selected, so that when I type the rest of the number, my first digit is lost. Any hint? Thanks! Here is my code: import gtk class PyApp(gtk.Window): def __init__(self): super(PyApp, self).__init__() self.set_title("Simple drawing") self.resize(230, 150) self.set_position(gtk.WIN_POS_CENTER) self.connect("destroy", gtk.main_quit) darea = gtk.DrawingArea() darea.connect("expose-event", self.expose) darea.connect("key-press-event", self.toucheEnfoncee) darea.add_events(gtk.gdk.BUTTON_PRESS_MASK | gtk.gdk.BUTTON_RELEASE_MASK | gtk.gdk.POINTER_MOTION_MASK | gtk.gdk.KEY_PRESS_MASK | gtk.gdk.KEY_RELEASE_MASK) darea.set_flags(gtk.CAN_FOCUS) self.add(darea) self.show_all() self.interfacePourNombres = gtk.Window() self.interfacePourNombres.set_modal(True) self.zonePourNombres = gtk.Entry(3) self.zonePourNombres.set_flags(gtk.CAN_DEFAULT) self.zonePourNombres.grab_default() self.zonePourNombres.select_region(0,0) self.zonePourNombres.set_activates_default(True) self.zonePourNombres.set_width_chars(5) self.zonePourNombres.set_position(1) self.zonePourNombres.size_allocate((0, 0, 100, 20)) self.zonePourNombres.connect("activate", self.obtenirLeNombre) self.zonePourNombres.show() self.interfacePourNombres.add(self.zonePourNombres) def toucheEnfoncee(self, widget, event): print "toucheEnfoncee : "+str(event.keyval) if event.keyval >= ord('1') and event.keyval <= ord('9'): self.zonePourNombres.set_text(chr(event.keyval)) self.zonePourNombres.set_position(1) self.zonePourNombres.select_region(0,0) self.interfacePourNombres.show_all() def obtenirLeNombre(self, widget): self.interfacePourNombres.hide() print "nombre obtenu : "+str(widget.get_text()) def expose(self, widget, event): pass PyApp() gtk.main()
_______________________________________________ pygtk mailing list pygtk@daa.com.au http://www.daa.com.au/mailman/listinfo/pygtk Read the PyGTK FAQ: http://faq.pygtk.org/