建立界面:
首先在Glade中建立一个窗口名为main,然后在上面放置一个按钮GtkButton名为button1,并且在“信号”标签中选中“clicked”事件,为此事件指定一个回调函数名称,例如回调函数是 void on_button_clicked(GtkWidget *widget),则只需在“clicked”事件的回调函数名称处填on_button_clicked。最后保存界面设计文件为 myWindow.glade。
代码中调用:
首先需要引用libglade的头文件:
#include
<
glade
/
glade.h
>
如下代码便可:
GladeXML
*
xml
=
glade_xml_new(
"
myWindow.glade
"
, NULL, NULL);
//
载入并新建整个界面
// 自动连接Glade设置的回调关系 (刚才在Glade中我们设置了button1的clicked事件回调函数为on_button_clicked)
glade_xml_signal_autoconnect(xml);
// 获取主窗体
GtkWidget * mainWindow = glade_xml_get_widget(xml, " main " );
// 设置窗体标题(其实在Glade中就可以设置)
gtk_window_set_title(GTK_WINDOW(mainWindow), " My Test Window " );
// 获取按钮
GtkWidget * button = glade_xml_get_widget(xml, " button1 " );
// 自动连接Glade设置的回调关系 (刚才在Glade中我们设置了button1的clicked事件回调函数为on_button_clicked)
glade_xml_signal_autoconnect(xml);
// 获取主窗体
GtkWidget * mainWindow = glade_xml_get_widget(xml, " main " );
// 设置窗体标题(其实在Glade中就可以设置)
gtk_window_set_title(GTK_WINDOW(mainWindow), " My Test Window " );
// 获取按钮
GtkWidget * button = glade_xml_get_widget(xml, " button1 " );
on_button_clicked代码:
void
on_button_clicked(GtkWidget
*
widget)
{
g_print("button1 clicked /n");
}
{
g_print("button1 clicked /n");
}
最后在gcc链接的时候必须加上-rdynamic参数,这样才能使 glade_xml_signal_autoconnect(xml); 调用找到对应的回调函数。