[Glade-users] glade-3 and user data

Tristan Van Berkom tristan.van.berkom at gmail.com
Fri Jun 5 21:35:11 EDT 2009


On Fri, Jun 5, 2009 at 6:46 PM, Gerald Britton<gerald.britton at gmail.com> wrote:
> I think that the user data should actually be another widget in this case.

Yes, user data can only be another widget or object in the project;
and it will be
the first argument to the callback not the last.

Cheers,
           -Tristan

>
>
>
> 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
> _______________________________________________
> Glade-users maillist  -  Glade-users at lists.ximian.com
> http://lists.ximian.com/mailman/listinfo/glade-users
>


More information about the Glade-users mailing list