|
|
用实例说明一下,比如你得到了一个test.glade文件,并且加入了事件处理函数do_some()到某个widget ,MainWindow中。- #include <gtk/gtk.h>
- #include <glade/glade.h>
- void do_some(GtkWidget *widget, gpointer user_data) {
- /* do something useful here */
- }
- int main(int argc, char *argv[]) {
- GladeXML *xml;
- gtk_init(&argc, &argv);
- glade_init();
- /* load the interface */
- xml = glade_xml_new("test.glade", NULL, NULL);
- /* connect the signals in the interface */
- glade_xml_signal_autoconnect(xml);
- /* start the event loop */
- gtk_main();
- return 0;
- }
复制代码
使用glade_xml_signal_autoconnect()函数可以将接口描述文件中的事件处理函数和你代码中定义的同名函数自动连接起来。
例如test.glade类似这个样子。
<widget>
<class>GtkWindow</class>
<name>MainWindow</name>
<signal>
<name>destroy</name>
<handler>do_some</handler>
</signal>
...
如果要编译这个程序,那么运行
cc -o testprogram testprogram.c `libglade-config --cflags --libs`
libglade-config脚本会自动为你加上所需要的编译和链接参数。 |
|