自 gtk 的版本升到 2.12,它就包含了 GtkBuilder . GtkBuilder 的作用和 libglade 一样,用来加载 glade 文件, 所以,如果使用 GtkBuilder 来代替 libglade ,这样就可以在使用过程中,减少一个依赖. 但是,glade-3.4.x (听说是在 3.5.x 开始支持),还没有支持 Gtkbuilder, 那当我们使用 Gtkbuilder 的时候,需要用一个脚本进行转换下, 脚本在 gtk 里面已经自带了.
gtk-builder-convert hello.glade hello.xml
然后,gtkbuilder 的函数,基本是和 libglade一样
Gtk::Window* pWin=0; static Glib::RefPtr<Gtk::Builder> refxml; //加载UI文件 refxml = Gtk::Builder::create_from_file("hello.xml"); //获取构件指针的函数一样 refxml->get_widget("helloworld",pWin);
总的来说,使用 GtkBuilder ,可以减少一个依赖,GtkBuilder 自 gtk 2.12已经包含在里面了, 所以,对于一些新程序,建议使用 GtkBuilder 比较好,毕竟等 glade 支持 GtkBuilder 也是就快的事了, 现在最多就是用脚本转换下 glade 文件,并不麻烦,免得以后再修改代码.