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

Popular posts from this blog

javascript - Enclosure Memory Copies -

php - Replacing tags in braces, even nested tags, with regex -