from gi.repository import Gtk class SpinButtonWindow(Gtk.Window): def __init__(self): Gtk.Window.__init__(self, title="SpinButton Demo") self.set_border_width(10) hbox = Gtk.Box(spacing=6) self.add(hbox) adjustment = Gtk.Adjustment(0, 0, 100, 1, 10, 0) self.spinbutton = Gtk.SpinButton() self.spinbutton.set_adjustment(adjustment) hbox.pack_start(self.spinbutton, False, False, 0) check_numeric = Gtk.CheckButton("Numeric") check_numeric.connect("toggled", self.on_numeric_toggled) hbox.pack_start(check_numeric, False, False, 0) check_ifvalid = Gtk.CheckButton("If Valid") check_ifvalid.connect("toggled", self.on_ifvalid_toggled) hbox.pack_start(check_ifvalid, False, False, 0) def on_numeric_toggled(self, button): self.spinbutton.set_numeric(button.get_active()) def on_ifvalid_toggled(self, button): if button.get_active(): policy = Gtk.SpinButtonUpdatePolicy.IF_VALID else: policy = Gtk.SpinButtonUpdatePolicy.ALWAYS self.spinbutton.set_update_policy(policy) window = SpinButtonWindow() window.connect("delete-event", Gtk.main_quit) window.show_all() Gtk.main()