今天看了下单选按钮的设置,实现起来还是挺简单的,就是自己太不熟练

 1    radio=gtk_radio_button_new_with_label(NULL,"a");            //第一次创建单选按钮,第一个参数应为NULL
 2     g_signal_connect(GTK_OBJECT(radio),"clicked",GTK_SIGNAL_FUNC(click_radio),"a"); //设置点击按钮调用的函数和传递的参数
 3     gtk_box_pack_start(GTK_BOX(box),radio,TRUE,TRUE,0);            //将按钮加入box这个容器,设置可以扩展和填充,与前一控件间隔为0
 4     
 5     //group = gtk_radio_button_group(GTK_RADIO_BUTTON(radio));        //第二次创建按钮,需要先将之前的按钮加入到一个group中
 6     //radio = gtk_radio_button_new_with_label(group,"b");        //然后向这个组中添加新的按钮
 7 
 8     radio=gtk_radio_button_new_with_label_from_widget(GTK_RADIO_BUTTON(radio),"b");    //上面两句可以用这一句来代替,作用相同,只不过不用创建组
 9 
10     g_signal_connect(GTK_OBJECT(radio),"clicked",GTK_SIGNAL_FUNC(click_radio),"b");    //设置点击按钮调用的函数和传递的参数
11     gtk_box_pack_start(GTK_BOX(box),radio,TRUE,TRUE,0);            //将其加入容器中

其中gtk_radio_button_new_with_label(GSList *group,const gchar *label)第一个参数的类型为GSList *,如果第一次创建按钮,这个参数值为NULL,之后每次创建,都需要用这个函数GSList *gtk_radio_button_get_group( GtkRadioButton *radio_button )创建一个组,并把前一个按钮作为参数。返回的参数在传给下一个调用的gtk_radio_button_new_with_label(),这样才能建立联系在一起的单选按钮。如上面的1到6行。

还有一种方法,是代码第8行显示的方法,它不需要一个列表来将按钮储存在一起。

还有一种方法,代码中没有贴出来,直接给出来吧,button2=gtk_radio_button_new_with_label_from_widget( GTK_RADIO_BUTTON (button1), "button2");直接用前一个按钮作为参数,这样也能把全部按钮联系起来。

还有一个函数,设置哪个按钮被默认按下void gtk_toggle_button_set_active( GtkToggleButton *toggle_button, gboolean state );

好了,继续好好努力吧,加油!!!!