分类: 嵌入式
2009-11-26 13:39:48
名称:: |
gtk_label_set_justify |
功能: |
调整标签构件正文的对齐方式 |
头文件: |
#include |
函数原形: |
void gtk_label_set_justify(GtkLabel *label,GtkJustification jtype); |
参数: |
label 要修改的标签构件 jtype 对齐方式 |
返回值: |
无 |
jtype的值可以是:
GTK_JUSTIFY_LEFT 左对齐
GTK_JUSTIFY_RIGHT 右对齐
GTK_JUSTIFY_CENTER 居中对齐
GTK_JUSTIFY_FILL 充满
标签构件文本会自动换行。用gtk_label_set_line_wrap函数激活自动换行。
5.
名称:: |
gtk_label_set_line_wrap |
功能: |
激活自动换行 |
头文件: |
#include |
函数原形: |
void gtk_label_set_line_wrap(GtkLabel *label,gboolean wrap); |
参数: |
label 要修改的标签构件 wrap 是否自动换行 |
返回值: |
无 |
wrap参数可取TRUE或FALSE,对应于自动换行和不自动换行。
可以使用gtk_label_set_pattern函数对标签正文加下划线。
6.
名称:: |
gtk_label_set_pattern |
功能: |
对标签正文加下划线 |
头文件: |
#include |
函数原形: |
void gtk_label_set_pattern(GtkLabel *label,const gchar *pattern); |
参数: |
label 要修改的标签构件 pattern 下划线外观 |
返回值: |
无 |
pattern参数指定下划线的外观。它由一串下划线和空格组成。下划线指示标签的相应字符应该加一个下划线。
下面我们来练习上面的三个函数。
#include int main(int argc,char *argv[]) { GtkWidget *window; GtkWidget *label; gtk_init (&argc,&argv); window=gtk_window_new(GTK_WINDOW_TOPLEVEL); gtk_widget_set_usize(window,100,100); gtk_signal_connect(GTK_OBJECT(window),”delete_event”,G_CALLBACK(gtk_main_quit),NULL); label=gtk_label_new(“This is a label”);/*建立标号*/ gtk_widget_set_usize(label,10,10);/*设置标号尺寸*/ gtk_label_set_justify(GTK_LABEL(label),GTK_JUSTIFY_CENTER);/*设置标号对齐方式为居中对齐*/ gtk_label_set_line_wrap(GTK_LABEL(label),TRUE);/*打开自动换行*/ gtk_label_set_pattern(GTK_LABEL(label),”_ _ _ _”);/*添加下划线*/ gtk_widget_show(label); gtk_container_add(GTK_CONTAINER(window),label); gtk_widget_show(window); gtk_main(); return 0; } |
运行程序会得到如下结果:
二、事件盒构件
事件盒构件(GtkEventBox)在屏幕上什么也不画,也不能单独对事件做出响应。它的功能是为一些没有X窗口的构件(如label)提供X窗口。使其可以接收信号。它另外一个作用是剪裁这些构件。它的功能有点像Dreamweaver里的焦点。
使一个没有X窗体的构件响应信号分为3步。
一、创建事件盒构件。我们用gtk_event_box_new来创建事件盒构件。
1.
名称:: |
gtk_event_box_new |
功能: |
创建事件盒构件 |
头文件: |
#include |
函数原形: |
GtkWidget *gtk_event_box_new( void ); |
参数: |
无 |
返回值: |
新的事件盒构件 |
二、将要响应事件的构件加入事件盒构件。
gtk_container_add( GTK_CONTAINER(event_box), child_widget );
三、为事件盒构件绑定一个事件响应。
gtk_signal_connect (GTK_OBJECT(event_box), "button_press_event", GTK_SIGNAL_FUNC (gtk_main_quit), NULL);
下面就是应用事件盒构件的例子。
#include int main(int argc,char *argv[ ]) { GtkWidget *window; GtkWidget *event_box; GtkWidget *label; gtk_init(&argc,&argv); window=gtk_window_new(GTK_WINDOW_TOPLEVEL); gtk_signal_connect(GTK_OBJECT(window),”destroy”,GTK_SIGNAL_FUNC(gtk_main_quit),NULL); gtk_container_set_border_width(GTK_CONTAINER(window),10); event_box=gtk_event_box_new();/*创建事件盒构件*/ gtk_container_add(GTK_CONTAINER(window),event_box); gtk_widget_show(event_box); label_gtk_label_new(“Click here to quit”); gtk_container_add(GTK_CONTAINER(event_box),label);/*将label构件加入事件盒构件*/ gtk_widget_show(label); gtk_signal_connect(GTK_OBJECT(event_box),”button_press_event”,GTK_SIGNAL_FUNC(gtk_main_quit),NULL);/* 为事件盒构件绑定一个事件响应*/ gtk_widget_show(window); gtk_main(); } |
程序运行后得到如下窗体,当用户点击label程序退出。