logo       

Verifying Entry inputs: msg#00134

gnome.gtk+.python

Subject: Verifying Entry inputs

Hi all,

I'd like to have Entry widgets that allow only numbers (float) as inputs, and
only
in a certain range. This verification should be done as soon as the user is done
with editing. I tried the focus-out-event, but pygtk didn't like me bringing up
a
modal (error) dialog in the callback. Second try was with an insert-text handler
which just ignored invalid inputs. It looks like this:

def myInsertText(self, widget, new_text, new_text_length, position):
oldtext = widget.get_text()
# Avoid recursion
widget.handler_block(widget.mySigHandID)
# Insert text and check for validity
pos = widget.get_position()
widget.insert_text(new_text, pos)
newtext = widget.get_text()
try:
value = float(newtext)
except ValueError:
# Restore previous contents
widget.delete_text(pos, pos + new_text_length)
# XXX Something like a beep might be nice here
else:
widget.set_position(pos + new_text_length)
widget.handler_unblock(widget.mySigHandID)

# Keep normal handler from running
widget.stop_emission("insert-text")

In this version I simply can't get the cursor to appear *after* the
inserted text, the widget.set_position() call seems to do just nothing.

Is there a fundamental flaw in my routine or my whole concept?
I'd be really glad to get some recommendations.

Thanks,
Hans-J. Widmaier
______________________________________________________________
Verschicken Sie romantische, coole und witzige Bilder per SMS!
Jetzt bei WEB.DE FreeMail: http://f.web.de/?mc=021193

_______________________________________________
pygtk mailing list pygtk@xxxxxxxxxx
http://www.daa.com.au/mailman/listinfo/pygtk
Read the PyGTK FAQ: http://www.async.com.br/faq/pygtk/



<Prev in Thread] Current Thread [Next in Thread>
Google Custom Search

News | FAQ | advertise