def add_spin(self, label, key, adjust_props={}, spin_props={}, type_=int):
def on_changed(spin):
value = None
if type_ is int:
value = spin.get_value_as_int()
else:
value = spin.get_value()
self._settings[key] = value
adjust_default = {
'lower': 0,
'upper': 100,
'step_increment': 1
}
adjustment = Gtk.Adjustment()
adjustment.set_lower(
adjust_props.get('lower', adjust_default['lower'])
)
adjustment.set_upper(
adjust_props.get('upper', adjust_default['upper'])
)
adjustment.set_step_increment(
adjust_props.get('step_increment', adjust_default['step_increment'])
)
spin_button = Gtk.SpinButton()
spin_button.set_adjustment(adjustment)
spin_button.set_numeric(True)
spin_button.set_snap_to_ticks(True)
spin_button.set_value(self._settings[key])
spin_button.connect('value-changed', on_changed)
if type_ is float:
spin_button.set_digits(2)
return self.add_row(label, spin_button, True)
评论列表
文章目录