Table of Contents
Although you can use C++ code to instantiate and arrange widgets, this can soon become tedious and repetitive. And it requires a recompilation to show changes. The Glade application allows you to layout widgets on screen and then save an XML description of the arrangement. Your application can then use the libglademm API to load that XML file at runtime and obtain a pointer to specifically named widget instances.
This has the following advantages:
You still need C++ code to deal with User Interface changes triggered by user actions, but using libglademm for the basic widget layout allows you to focus on implementing that functionality.
Gnome::Glade::Xml
must be used via a
Glib::RefPtr
. Like all such classes, you need to use
create()
method to instantiate it.
Glib::RefPtr<Gnome::Glade::Xml> refXml = Gnome::Glade::Xml::create("basic.glade");
This will instantiate the windows defined in the .glade file, though they will
not be shown immediately unless you have specified that via the Properties
window in Glade. The widgets are owned by the
Gnome::Glade::Xml
instance, and will be deleted
automatically when it is deleted, when the last copy of the smartpointer goes
out of scope.
To instantiate just one window, or just one of the child widgets, you can specify the name of a widget as the second parameter. For instance,
Glib::RefPtr<Gnome::Glade::Xml> refXml = Gnome::Glade::Xml::create("basic.glade", "treeview_products");