[maemo-developers] Help with hildon.NumberEditor: IN PYTHON
From: Lauro Moura lauro.neto at openbossa.orgDate: Thu Apr 3 00:55:27 EEST 2008
- Previous message: Help with hildon.NumberEditor: IN PYTHON
- Next message: Help with hildon.NumberEditor: IN PYTHON
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
On Wed, Apr 2, 2008 at 4:28 PM, Darren Enns <darethehair at gmail.com> wrote: > > Help please! > > I am slowly learning OOP-style PyGTK code, and have recently discovered how > 'nasty' gtk.Spinbutton looks on Maemo :( > > OK, so I was just going to make some quick changed to my Python code to use > 'hildon.NumberEditor' instead, but it is not as much a 'drop-in-replacement' > as a newbie like me requires... > > """ subclass the gtk.Digalog() class to create a new dialog window """ > class spin_window(gtk.Dialog) : > value = [0] * SPIN_BUTTON_COUNT > > def hildon_set_value(self,widget,index): > self.value[index] = widget.get_value() > return > > # a callback to remember the values of the spin buttons. > # the 'index' is setup when connecting the callback > def set_value(self,widget,index): > self.value[index] = widget.get_value_as_int() > return > > def __init__(self,window): > # init the parent class to create the dialog > super(spin_window, self).__init__("set spin values", > window, > gtk.DIALOG_DESTROY_WITH_PARENT | > gtk.DIALOG_MODAL, > (gtk.STOCK_OK, gtk.RESPONSE_OK)) > > number_editor = hildon.NumberEditor(-90,90) > #number_editor.connect("changed",self.set_value, 0) > #number_editor.connect("notify::value",self.set_value, 0) > > number_editor.connect("notify::value",self.hildon_set_value,0) > number_editor.set_value(0) > self.vbox.pack_start(number_editor) > self.value[0] = 0 > number_editor.show() > > label = gtk.Label('Latitude Degrees:') > self.vbox.pack_start(label) > #label.modify_font(pango.FontDescription("sans 30")) > label.show() > > adjustment = gtk.Adjustment(0, -90, 90, 1, 1, 1) > spinbutton = gtk.SpinButton(adjustment,0,0) > spinbutton.connect("changed",self.set_value, 1) > self.vbox.pack_start(spinbutton) > self.value[1] = 0 > spinbutton.show() > ... > > Notice my feeble attempts to add 'special' code for the numbereditor -- but > the code above does not work: > > "TypeError: hildon_set_value() takes exactly 3 arguments (4 given)" > > So I am getting all confused! It *looks* like I am using the correct > signal value, and passing three parameters... > > There are very few Python examples out on Google for me to learn the > solution with. > Try replacing the argument list on the callback to def set_value(self, widget, index, data=None) Now data will take the extra data passed when the signal is received. -- Lauro Moura INdT - Instituto Nokia de Tecnologia
- Previous message: Help with hildon.NumberEditor: IN PYTHON
- Next message: Help with hildon.NumberEditor: IN PYTHON
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]