红联Linux门户
Linux帮助

Glade 3 + Anjuta 的使用(控件与函数的连接)

发布时间:2007-11-25 00:33:31来源:红联作者:llqbll
Glade 3 是一个完全重写过的版本,最大的特点就是去掉了代码生成的功能。这也完全符合 Glade 的初衷:界面与代码的分离。
但在Anjuta下,怎么也没办法用g_signal_connect()把Glade 3生成的控件与时间连接起来,在网上也没搜索到什么有用的资料,对比Glade2的生成文件,发现Anjuta使用了 glade_xml_new,glade_xml_get_widget,与Glade2的生成文件不同,而是直接调用了XML形式的glade。
看来只有修改Anjuta的默认生成函数GtkWidget*create_window (void)了,
GtkWidget*
create_window (void)
{
GtkWidget *window;
GladeXML *gxml;
GtkWidget *button;
gxml = glade_xml_new (GLADE_FILE, NULL, NULL);

/* This is important */
glade_xml_signal_autoconnect (gxml);
window = glade_xml_get_widget (gxml, "window");
button = glade_xml_get_widget (gxml, "button1");
g_signal_connect(G_OBJECT(window),"delete_event",G_CALLBACK(gtk_main_quit),NULL);
g_signal_connect(G_OBJECT(button),"clicked",G_CALLBACK(gtk_main_quit),NULL);
return window;
}
红色部分为自己要添加的对控件的连接,button1为在Glade 3中自己创建的按钮,也可以直接删除函数create_window,自己在main函数中调用XML。
文章评论

共有 1 条评论

  1. HotKing 于 2007-12-16 20:06:48发表:

    使glade_xml_signal_autoconnect ()函数生效,自动调用消息处理的回调函数
    Project-->Properties-->Packages-->Add Package-->添加gmodule-2.0或gmodule-export-2.0中的任意一个即可
    那三行就不用添了,直接可以编写回调函数了