分类: 嵌入式
2009-11-26 13:37:05
四、选择按钮
选择就是我们通常来说的单选框。从外观来看,选择按钮(GtkRaddioButton)很像检查按钮。因为选择按钮是从检查按钮派生而来的。选择按钮和检查按钮的区别不大,对选择按钮来说,任何时候在一组按钮只可以选择一个按钮,点击一个按钮就释放前面选择的按钮,使点击的按钮成为被选择的按钮。
可以用gtk_radio_hutton_new_with_label函数建立带标号的GtkRadioButton,或者用gtk_radio_button_new函数建立不带标号的GtkRadioButton。建立GtkRadioButton只完成了工作的一半。因为选择按钮必须和组联系起来,使得任何时候只能选择一个按钮。
4.
名称:: |
gtk_radio_button_new gtk_radio_button_new_with_label |
功能: |
创建一个不带标号的选择按钮 (gtk_radio_button_new) 创建一个带标号的选择按钮 (gtk_radio_button_new_with_label) |
头文件: |
#include |
函数原形: |
GtkWidget *gtk_radio_button_new(GSList *group); GtkWidget *gtk_radio_button_new_with_labal(GSList *group,const gchar *label); |
参数: |
group 所属组 label 选择按钮正文 |
返回值: |
新的选择按钮 |
在创建选择按钮的时候需要指定选择按钮的组,在使用组之前应该先把组指向NULL。否则会出现错误。
5.
名称:: |
gtk_radio_button_group |
功能: |
把选择按钮添加到组中 |
头文件: |
#include |
函数原形: |
GSList *gtk_group_button_group(GtkWidget *radio); |
参数: |
radio 选择按钮 |
返回值: |
组名 |
每添加一个选择按钮后都得调用一次gtk_radio_button_group函数取得组,然后继续添加按钮。如果不这样做将导致不可预期的结果。
下面我们就创建2个按钮,并把它们加入到一个组中:
/*button4.c*/ #include int main(int argc,char *argv[ ]) { GtkWidget *window; GtkWidget *button; GtkWidget *box; GSList *group=NULL; gtk_init_chrck(&argc,&argv); /*初始化GTK+工具库*/ window=gtk_window_new(GTK_WINDOW_TOPLEVEL); /*创建窗体*/ gtk_signal_connect(GTK_OBJECT(window),”delete_event”,G_CALLBACK(gtk_main_quit),NULL); /*登记窗体delete_event信号*/ box=gtk_vbox_new(FALSE,0);/*创建组合框*/ button=gtk_radio_button_new_with_label(group,”Radio Button group=gtk_radio_button_group(GTK_RADIO_BUTTON(button));/*把按钮加到组中*/ gtk_box_pack_start(GTK_BOX(box),button,FALSE,FALSE,0);/*把按钮加入组合框*/ gtk_widget_show(button);/*显示按钮*/ button=gtk_radio_button_new_with_label(group,”Radio Button group=gtk_radio_button_group(GTK_RADIO_BUTTON(button)); gtk_box_pack_start(GTK_BOX(box),button,FALSE,FALSE,0); gtk_widget_show(button); gtk_container_add(GTK_CONTAINER(window),box);/*把组合框加入窗体*/ gtk_widget_show(box);/*显示组合框*/ gtk_widget_show(window);/*显示窗体*/ gtk_main(); return 0; } |
我们编译上面的程序:
$gcc –o button4 button4.c `pkg-config –cflags –libs gtk+-2.0
$./button4
下图是运行之后的页面: