今天又使了使GLADE,发现虽没有QtDesigner那般疯狂,但也不错了.
写一点东西,算是复习以及备份.
glade自3.6以后的版本就支持gtkbuilder格式的布局了[不过目前好像win32版只有3.4.x的,所以还是只能用libglade]
下面先把两种形式的的代码分别罗列一下[至于如何安装和配置,我会在后面略作描述]\
gtkbuilder形式的
#include <gtk/gtk.h>
//假设布局文件定义了一个名为button1的按钮,并且其clicked信号处理函数如下
//注意回调要有G_MODULE_EXPORT声明
G_MODULE_EXPORT
void on_button1_clicked(GtkWidget* widget,gpointer data)
{
g_print("Hello World !\r\n");
}
int main (int argc, char **argv) {
//GtkBuilder类型,用于布局
GtkBuilder *gtkBuilder;
GtkWidget *mainwin;
gtk_set_locale();
/* Initialize the widget set */
gtk_init (&argc, &argv);
/* Create the main window */
//通过main.glade建立布局
gtkBuilder= gtk_builder_new();
gtk_builder_add_from_file(gtkBuilder,"main.glade",NULL);
//连接信号,信号名在布局文件中定义,实现在cpp文件中
gtk_builder_connect_signals (gtkBuilder, NULL);
//通过布局文件,获得构件,此处为一个对话框型的窗体
mainwin= GTK_WIDGET(gtk_builder_get_object(gtkBuilder,"dialog1"));
g_object_unref ( G_OBJECT(gtkBuilder) );
/* Show the application window */
gtk_widget_show_all ( mainwin );
/* Enter the main event loop, and wait for user interaction */
gtk_main ();
/* The user lost interest */
return 0;
}