/*建立gtklist的关键代码片断,以及建立单选按钮的关键代码片断*/
/*建立gtk_list*/
GtkWidget *gtk_list;
gtk_list = gtk_list_new();
gtk_widget_show(gtk_list);
/*添加3个列表项标签方法1*/
GtkWidget *listitem;
listitem = gtk_list_item_new_with_label("first");
gtk_container_add(GTK_CONTAINER(listbox), listitem);
gtk_widget_show(listitem);
listitem = gtk_list_item_new_with_label("second");
gtk_container_add(GTK_CONTAINER(listbox), listitem);
gtk_widget_show(listitem);
listitem = gtk_list_item_new_with_label("third");
gtk_container_add(GTK_CONTAINER(listbox), listitem);
gtk_widget_show(listitem);
/*添加3个列表项标签的方法2*/
GtkListItem *listitem;
GList *items = NULL;
GList *copy = NULL;
listitem = gtk_list_item_new_with_label("first");
gtk_widget_show(listitem);
items = g_list_append(items, listitem);
listitem = gtk_list_item_new_with_label("second");
gtk_widget_show(listitem);
items = g_list_append(items, listitem);
listitem = gtk_list_item_new_with_label("third");
gtk_widget_show(listitem);
items = g_list_append(items, listitem);
/*添加到gtklist中的glist实际不用释放,但是那样不太好(需要实践看看)
*所以拷贝一份,然后把原来的释放。
*/
copy = g_list_copy(items);
g_list_free(memorylist);
memorylist = NULL;
gtk_list_append_items(GTK_LIST(gtk_list), copy);
/*添加三个checkbutton*/
GtkWidget *check;
GtkListItem *listitem;
check = gtk_check_button_new_with_label("first");
listitem = gtk_list_item_new();
gtk_container_add(GTK_CONTAINER(listitem), check);
gtk_container_add(GTK_CONTAINER(gtklist), listitem);
check = gtk_check_button_new_with_label("second");
listitem = gtk_list_item_new();
gtk_container_add(GTK_CONTAINER(listitem), check);
gtk_container_add(GTK_CONTAINER(gtklist), listitem);
check = gtk_check_button_new_with_label("third");
listitem = gtk_list_item_new();
gtk_container_add(GTK_CONTAINER(listitem), check);
gtk_container_add(GTK_CONTAINER(gtklist), listitem);
/*建立radiobutton的片断*/
/*
步骤:
1,建立链表(表示一个单选按钮组)。
2,列表作为建立单选按钮函数的参数(表示该单选按钮属于这个链表组)。
3,单选按钮加到容器。
4,显示单选按钮。
*/
GSList group = NULL;
GtkWidget *radio;
GtkWidget *box;
radio = gtk_radio_button_new_with_label(group, "first");
gtk_box_pack_start(GTK_BOX(box), radio, TRUE, TRUE, 5);
group = gtk_radio_button_group(GTK_RADIO_BUTTON(radio));//得到链表首
radio = gtk_radio_button_new_with_label(group, "second");
gtk_box_pack_start(GTK_BOX(box), radio, TRUE, TRUE, 5);
group = gtk_radio_button_group(GTK_RADIO_BUTTON(radio));
radio = gtk_radio_button_new_with_label(group, "third");
gtk_box_pack_start(GTK_BOX(box), radio, TRUE, TRUE, 5);
group = gtk_radio_button_group(GTK_RADIO_BUTTON(radio));
...
/*连接radio的信号*/
g_signal(radio, "toggled", G_CALLBACK(...), NULL);