[Glade-users] glade-3 and user data
Gerald Britton
gerald.britton at gmail.com
Fri Jun 5 18:46:47 EDT 2009
I think that the user data should actually be another widget in this case.
On 6/5/09, Keith Eberle <keith.eberle at gmail.com> wrote:
> Hmm...
> When I run this ($ pyton ./myglade) it prints:
> ./myglade:15: GtkWarning: Could not lookup object somedata on signal clicked
> of object button
> builder.connect_signals(self)
>
> "somedata" is the data I entered in the User Data field in Glade.
>
> Anyway, I printed the values of all parameters the signal handler received:
>
> def on_button_clicked(self, widget, data=None):
> print self
> print widget
> print data
>
> And I see:
> <__main__.MyClass object at 0xb7d9aaec>
> <gtk.Button object at 0x9abf6bc (GtkButton at 0x9b6d820)>
> None
>
> I was expecting to see that "print self" printed "somedata"...
>
> (First time using these mailing lists too... very confusing, so I hope this
> reply works)
>
> keith
>
>
> On Tue, Jun 2, 2009 at 10:20 AM, Alexey Kurochkin
> <alexey.kurochkin at pathfinderlwd.com> wrote:
>> On Mon, 2009-06-01 at 22:06 -0400, Keith Eberle wrote:
>>> Hi all,
>>>
>>> I'm using a combination of Glade3/PyGTK to start my GTK+ learnings.
>>> I'm starting off fresh with the GtkBuilder way too. Doing well so
>>> far, but I'm having trouble using the "User Data" field in Glade. I
>>> found another message about this,
>>> http://lists.ximian.com/pipermail/glade-users/2009-April/004314.html,
>>> but I don't really understand what to do.
>>>
>>> Using this as an example, what do I have to do differently?
>>>
>>> class MyClass(object):
>>> def __init__(self):
>>> builder = gtk.Builder()
>>> builder.add_from_file('myglade.xml')
>>> builder.connect_signals(self)
>>>
>>> I assume that was the "autoconnect" method described in that other
>>> post. I tried something like this, but still doesn't work:
>>>
>>> class MyClass(object):
>>> def __init__(self):
>>> builder = gtk.Builder()
>>> builder.add_from_file('myglade.xml')
>>> builder.connect_signals({
>>> 'on_button_clicked': self.on_button_clicked,
>>> })
>>>
>>> def on_button_clicked(self, widget, user_data=None):
>>> print user_data
>>
>> Here, if you put something into "User data" field in your glade file, it
>> will appear as self, and the button object itself will appear as
>> user_data. That what it means "swapped". At least that how it was in
>> glade 3.4.x, I did not check if builder still does that, though.
>
> GtkBuilder did not change in that respect, what we need is to
> add api to builder signal parsing so that the swapped flag to
> signal connect can be optional (this will be less confusing of course).
>
> Cheers,
> -Tristan
>
--
Sent from my mobile device
Gerald Britton
More information about the Glade-users
mailing list