使用libglade在GTK+中载入Glade设计的图形界面

时间:2022-01-19 17:47:31
Glade是GTK+的界面辅助设计工具,可以通过拖放控件的方式快速设计出用户界面。

建立界面:

    首先在Glade中建立一个窗口名为main,然后在上面放置一个按钮GtkButton名为button1,并且在“信号”标签中选中“clicked”事件,为此事件指定一个回调函数名称,例如回调函数是 void on_button_clicked(GtkWidget *widget),则只需在“clicked”事件的回调函数名称处填on_button_clicked。最后保存界面设计文件为 myWindow.glade。

代码中调用:

首先需要引用libglade的头文件:
使用libglade在GTK+中载入Glade设计的图形界面#include  < glade / glade.h >

如下代码便可:
使用libglade在GTK+中载入Glade设计的图形界面GladeXML  * xml  =  glade_xml_new( " myWindow.glade " , NULL, NULL);   // 载入并新建整个界面
使用libglade在GTK+中载入Glade设计的图形界面
使用libglade在GTK+中载入Glade设计的图形界面
// 自动连接Glade设置的回调关系   (刚才在Glade中我们设置了button1的clicked事件回调函数为on_button_clicked)
使用libglade在GTK+中载入Glade设计的图形界面
glade_xml_signal_autoconnect(xml);
使用libglade在GTK+中载入Glade设计的图形界面
使用libglade在GTK+中载入Glade设计的图形界面
// 获取主窗体
使用libglade在GTK+中载入Glade设计的图形界面
GtkWidget  * mainWindow  =  glade_xml_get_widget(xml, " main " );
使用libglade在GTK+中载入Glade设计的图形界面
使用libglade在GTK+中载入Glade设计的图形界面
// 设置窗体标题(其实在Glade中就可以设置)
使用libglade在GTK+中载入Glade设计的图形界面
gtk_window_set_title(GTK_WINDOW(mainWindow), " My Test Window " );
使用libglade在GTK+中载入Glade设计的图形界面
使用libglade在GTK+中载入Glade设计的图形界面
// 获取按钮
使用libglade在GTK+中载入Glade设计的图形界面
GtkWidget  * button  =  glade_xml_get_widget(xml, " button1 " );
使用libglade在GTK+中载入Glade设计的图形界面

on_button_clicked代码:
使用libglade在GTK+中载入Glade设计的图形界面void  on_button_clicked(GtkWidget  * widget)
使用libglade在GTK+中载入Glade设计的图形界面使用libglade在GTK+中载入Glade设计的图形界面
... {
使用libglade在GTK+中载入Glade设计的图形界面    g_print(
"button1 clicked /n");
使用libglade在GTK+中载入Glade设计的图形界面}


最后在gcc链接的时候必须加上-rdynamic参数,这样才能使 使用libglade在GTK+中载入Glade设计的图形界面 glade_xml_signal_autoconnect(xml); 调用找到对应的回调函数。