分类: 嵌入式
2009-11-26 13:38:00
一、标签构件
标签构件(GtkLabel)是GTK中最常见的构件,它是静态的不可编辑的字段。在屏幕上,常常用标号说明其他字段。在按钮上设置标签用来说明按钮,或者放在其他字段的旁边对该字段提供说明。它不能自身引发信号。
用gtk_label_new创建标签构件:
1.
名称:: |
gtk_label_new |
功能: |
创建标签构件 |
头文件: |
#include |
函数原形: |
GtkWidget gtk_label_new(char *str); |
参数: |
str 标签构件正文 |
返回值: |
新的标签构件 |
下面就是创建标号的程序例子:
/*label1.c*/ #include int main(int argc,char *argv[]) { GtkWidget *window; GtkWidget *label; gtk_init_chech(&argc,&argv); window=gtk_window_new(GTK_WINDOW_TOPLEVEL); gtk_signal_connect(GTK_OBJECT(window),”delete_event”,G_CALLBACK(gtk_main_quit),NULL); label=gtk_label_new(“This is a label”);/*建立标号*/ gtk_widget_show(label); gtk_container_add(GTK_CONTAINER(window),label); gtk_widget_show(window); gtk_main(); return 0; } |
下图是运行后的界面:
创建标签构件后,要改变标签内的文本用gtk_label_set_text函数。
2.
名称:: |
gtk_label_set_text |
功能: |
改变标签构件的正文 |
头文件: |
#include |
函数原形: |
void gtk_label_set_text(GtkLabel *label,char *str); |
参数: |
label 要修改的标签构件 str 签构件的正文 |
返回值: |
无 |
第一个参数是前面创建的标签构件,第而个参数是标签的正文。新的标签正文会根据需要自动调整。在正文中放置换行符,可以创建多行标签。
gtk_label_get函数可以取得标签的当前正文。
3.
名称:: |
gtk_label_get |
功能: |
获得标签构件的正文 |
头文件: |
#include |
函数原形: |
void gtk_label_get(GtkLabel *label,char **str); |
参数: |
label 要修改的标签构件 str 签构件的正文 |
返回值: |
无 |
第一个参数是前面创建的标签构件,第而个参数是要返回的正文字符串。
下面我们结合上面的选择按钮编写一个如下图所示的程序:当用户点击选择按钮,上面的tabel显示相应的内容。
下面是代码:
/*tabel2.c*/ #include void button_event(GtkWidget *,gpointer *); GtkWidget *label; 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);/*创建组合框*/ label=get_label_new(“Please check!”);/*创建标号*/ gtk_box_pack_start(GTK_BOX(box),label,FALSE,FALSE,15);/*把标号加入组合框*/ 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_signal_connect(GTK_OBJECT(button),”pressed”,GTK_SIGNAL_FUNC(button_event),”You check button 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_signal_connect(GTK_OBJECT(button),”pressed”,GTK_SIGNAL_FUNC(button_event),”You check button 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; } void button_event(GtkWidget *widget,gpointer *data) { gtk_label_set(GTK_LABEL(lable),(char *)data); } |