python - Creating a pygtk text field that only accepts number -
does know how create text field using pygtk accepts number. using glade build ui.
cheers,
i wouldn't know way simple switching settings, guess need handle via signals, 1 way connect changed
signal , filter out that's not number.
simple approach(untested should work):
class numberentry(gtk.entry): def __init__(self): gtk.entry.__init__(self) self.connect('changed', self.on_changed) def on_changed(self, *args): text = self.get_text().strip() self.set_text(''.join([i in text if in '0123456789']))
if want formatted numbers of course go more fancy regex or else, determine characters should stay inside entry.
edit
since may not want create entry in python i'm going show simple way "numbify" existing one.
def numbify(widget): def filter_numbers(entry, *args): text = entry.get_text().strip() entry.set_text(''.join([i in text if in '0123456789'])) widget.connect('changed', filter_numbers) # use gtk.builder rather glade, you'll need change format of .glade file in glade accordingly builder = gtk.builder() builder.add_from_file('yourprogram.glade') entry = builder.get_object('yourentry') numbify(entry)
Comments
Post a Comment