一个gtk小程序,利用box容器,在窗口中加入了文字和两个radio按钮,点击按钮,相应地文字就会变化。程序运行图如下
//2012 12 15
#include <gtk/gtk.h>
GtkWidget *label;
void hello (GtkWidget *widget,gpointer *data)
{
gtk_label_set(GTK_LABEL(label),(char*)data);
}
int main (int argc,char *argv[])
{
GtkWidget *window;
GtkWidget *button;
GtkWidget *box;
GSList *group;
gtk_init(&argc,&argv);
window = gtk_window_new(GTK_WINDOW_TOPLEVEL);
gtk_signal_connect(GTK_OBJECT(window),"destroy",G_CALLBACK(gtk_main_quit),NULL);
gtk_widget_set_size_request (window,150,150);
box = gtk_vbox_new(FALSE,0);
label = gtk_label_new("Please check!");
gtk_box_pack_start(GTK_BOX(box),label,FALSE,FALSE,15);
button = gtk_radio_button_new_with_label(NULL,"Radio BUtton1");
group = gtk_radio_button_group(GTK_RADIO_BUTTON(button));
gtk_box_pack_start(GTK_BOX(box),button,FALSE,FALSE,0);
gtk_signal_connect(GTK_OBJECT(button),"clicked",GTK_SIGNAL_FUNC(hello),"You check button1");
gtk_widget_show(button);
button = gtk_radio_button_new_with_label(group,"Radio BUtton2");
group = gtk_radio_button_group(GTK_RADIO_BUTTON(button));
gtk_box_pack_start(GTK_BOX(box),button,FALSE,FALSE,0);
gtk_signal_connect(GTK_OBJECT(button),"clicked",GTK_SIGNAL_FUNC(hello),"You check button2");
gtk_widget_show(button);
gtk_container_add(GTK_CONTAINER(window),box);
gtk_widget_show(label);
gtk_widget_show(box);
gtk_widget_show(window);
gtk_main();
return 0;
}
学习gtk也是考虑了一会儿,最后决定学,和数据结构一起学,一个学累了可以换另一个看看。图形编程还是有很多相通的,学gtk时,突然会想起之前用mfc时一些模糊的地方。