Chinaunix首页 | 论坛 | 博客
  • 博客访问: 637063
  • 博文数量: 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:39:48

4

名称:

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参数可取TRUEFALSE,对应于自动换行和不自动换行。

      

 

       可以使用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程序退出。

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