[Glade-users] newbie question: accessing multiple widgets from the callback function of another widget
Tristan Van Berkom
tristan.van.berkom at gmail.com
Mon May 30 22:10:58 EDT 2011
On Tue, May 31, 2011 at 10:52 AM, Benton Greene <beezum88 at gmail.com> wrote:
> I'm sure this is a simple thing, but I'm at a loss. I have a button
> that needs to call a function that has access to the values of six
> spin buttons, as well as to a drawing area. I have only written one
> program using GTK+ before, and that was by hand. In that one, I
> collected the pointers to each of the widgets I needed access to and
> put them all in an array that I then passed using the "gpointer
> user-data" field of g_signal_connect. I found it inelegant and a pain
> in the butt, but it worked. I have no idea, however, how to do a
> similar thing in the context of glade.
>
> I guess in general, I can't figure out how to pass arguments, or even
> gather the arguments I need to pass, using Glade. The whole xml ui
> file and gtk_builder function don't make any sense to me.
A common practice is:
o Create an object that is in charge of a said component (a
preferences dialog or such)
o Create the dialog/interface when the object initializes using
gtk_builder_add_from_file/data()
o Collect the pointers that the object might need using
gtk_builder_get_object() and store
them as data of the instance (probably private data when using C)
o Pass the said object as the data for all signal callbacks
(gtk_builder_connect_signals()
or another variation lets you assign a single pointer as the user
data for all callbacks).
Cheers,
-Tristan
More information about the Glade-users
mailing list