Chinaunix首页 | 论坛 | 博客
  • 博客访问: 636908
  • 博文数量: 237
  • 博客积分: 4285
  • 博客等级: 上校
  • 技术积分: 2701
  • 用 户 组: 普通用户
  • 注册时间: 2009-11-15 14:05
文章分类

全部博文(237)

文章存档

2014年(2)

2013年(3)

2012年(47)

2011年(15)

2010年(68)

2009年(102)

我的朋友

分类: 嵌入式

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 Button1”);/*创建按钮*/

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 Button2”);

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

 

下图是运行之后的页面:

 

 

阅读(499) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~