On Wed, Apr 2, 2008 at 4:28 PM, Darren Enns <[EMAIL PROTECTED]> 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
_______________________________________________
maemo-developers mailing list
[email protected]
https://lists.maemo.org/mailman/listinfo/maemo-developers