gtk+2.0-----杂项构件(1)

上传人:小** 文档编号:88022814 上传时间:2019-04-17 格式:DOC 页数:31 大小:253KB
返回 下载 相关 举报
gtk+2.0-----杂项构件(1)_第1页
第1页 / 共31页
gtk+2.0-----杂项构件(1)_第2页
第2页 / 共31页
gtk+2.0-----杂项构件(1)_第3页
第3页 / 共31页
gtk+2.0-----杂项构件(1)_第4页
第4页 / 共31页
gtk+2.0-----杂项构件(1)_第5页
第5页 / 共31页
点击查看更多>>
资源描述

《gtk+2.0-----杂项构件(1)》由会员分享,可在线阅读,更多相关《gtk+2.0-----杂项构件(1)(31页珍藏版)》请在金锄头文库上搜索。

1、GTK+2.0-杂项构件(1)GTK+2.0 2008-12-13 12:48:25 阅读933 评论0 字号:大中小订阅 标签构件GtkLabelG t k L a b e l (标签构件)是G T K中最常用的构件,实际上它很简单。因为没有相关联的X窗口,标签构件不能引发信号。如果需要引发信号,可以将它放在一个事件盒构件中,或放在按钮构件里面。用以下函数创建新标签构件:GtkWidget *gtk_label_new(char *str );唯一的参数是要由标签显示的字符串。创建标签构件后,要改变标签内的文本,用以下函数:void gtk_label_set_text( GtkLabel

2、*lacbel,char *str );第一参数是前面创建的标签构件(用G T K _ L A B E L ( )宏转换),并且第二个参数是新字符串。如果需要,新字符串需要的空间会做自动调整。在字符串中放置换行符,可以创建多行标签。用以下函数取得标签的当前文本:void gtk_label_get( GtkLabel *Label,char *str );第一个参数是前面创建的标签构件,并且第二个参数是要返回的字符串。不要释放返回的字符串,因为G T K内部要使用它。标签的文本可以用以下函数设置对齐方式:void gtk_label_set_justify( GtkLabel *Label,G

3、tkJustification jtype );j t y p e的值可以是:GTK_JUSTIFY_LEFT 左对齐GTK_JUSTIFY_RIGHT 右对齐GTK_JUSTIFY_CENTER 居中对齐(默认)GTK_JUSTIFY_FILL 充满标签构件的文本会自动换行。用以下函数激活“自动换行”:void gtk_label_set_line_wrap (GtkLabel *Label, gboolean wrap);w r a p参数可取T R U E或FA L S E,对应于自动换行和不自动换行。如果想要使标签构件加下划线,可以在标签构件中设置显示模式:void gtk_label

4、_set_pattern (GtkLabel *Label,const gchar *pattern);p a t t e r n参数指定下划线的外观。它由一串下划线和空格组成。下划线指示标签的相应字符应该加一个下划线。例如, “ ”将在标签的第1、第2个字符和第8、第9个字符加下划线。下面是一个说明这些函数的短例子。这个例子用框架构件能更好地示范标签的风格。/* GtkLabel示例开始label.c */#include int main( int argc,char *argv )static GtkWidget *window = NULL;GtkWidget *hbox;GtkWid

5、get *vbox;GtkWidget *frame;GtkWidget *label;/* 初始化GTK */gtk_init(&argc, &argv);window = gtk_window_new (GTK_WINDOW_TOPLEVEL);gtk_signal_connect (GTK_OBJECT (window), destroy,G T K _ S I G N A L _ F U N C ( g t k _ m a i n _ q u i t ) ,N U L L ) ;gtk_window_set_title (GTK_WINDOW (window), Label);vbox

6、 = gtk_vbox_new (FALSE, 5);hbox = gtk_hbox_new (FALSE, 5);gtk_container_add (GTK_CONTAINER (window), hbox);gtk_box_pack_start (GTK_BOX (hbox), vbox, FALSE, FALSE, 0);gtk_container_set_border_width (GTK_CONTAINER (window), 5);frame = gtk_frame_new (Normal Label);label = gtk_label_new (This is a Norma

7、l label);gtk_container_add (GTK_CONTAINER (frame), label);gtk_box_pack_start (GTK_BOX (vbox), frame, FALSE, FALSE, 0);frame = gtk_frame_new (Multi-line Label);label = gtk_label_new (This is a Multi-line label.nSecond linenThird line);gtk_container_add (GTK_CONTAINER (frame), label);gtk_box_pack_star

8、t (GTK_BOX (vbox), frame, FALSE, FALSE, 0);frame = gtk_frame_new (Left Justified Label);label = gtk_label_new (This is a Left-Justifiedn Multi-line label.nThird line);gtk_label_set_justify (GTK_LABEL (label), GTK_JUSTIFY_LEFT);gtk_container_add (GTK_CONTAINER (frame), label);gtk_box_pack_start (GTK_

9、BOX (vbox), frame, FALSE, FALSE, 0);frame = gtk_frame_new (Right Justified Label);label = gtk_label_new (This is a Right-JustifiednMulti-line label.n Fourth line, (j/k);gtk_label_set_justify (GTK_LABEL (label), GTK_JUSTIFY_RIGHT);gtk_container_add (GTK_CONTAINER (frame), label);gtk_box_pack_start (G

10、TK_BOX (vbox), frame, FALSE, FALSE, 0);vbox = gtk_vbox_new (FALSE, 5);gtk_box_pack_start (GTK_BOX (hbox), vbox, FALSE, FALSE, 0);frame = gtk_frame_new (Line wrapped label);label = gtk_label_new (This is an example of a line-wrapped label. It should not be taking up the entire /* 一大段空格,用来测试间距* / widt

11、h allocated to it, but automatically wraps the words to fit. The time has come, for all good men, to come to the aid of their party. The sixth sheiks six sheep s sick.n It supports multiple paragraphs correctly, and correctly adds many extra spaces. );gtk_label_set_line_wrap (GTK_LABEL (label), TRUE

12、);gtk_container_add (GTK_CONTAINER (frame), label);gtk_box_pack_start (GTK_BOX (vbox), frame, FALSE, FALSE, 0);frame = gtk_frame_new (Filled, wrapped label);label = gtk_label_new (This is an example of a line-wrapped, filled label It should be taking up the entire width allocated to it. Here is a se

13、ntence to prove my point. Here is another sentence. Here comes the sun, do de do de do.n This is a new paragraph.n This is another newer, longer, better paragraph. It is coming to an end, u n f o r t u n a t e l y . ) ;gtk_label_set_justify (GTK_LABEL (label), GTK_JUSTIFY_FILL);gtk_label_set_line_wr

14、ap (GTK_LABEL (label), TRUE);gtk_container_add (GTK_CONTAINER (frame), label);gtk_box_pack_start (GTK_BOX (vbox), frame, FALSE, FALSE, 0);frame = gtk_frame_new (Underlined label);label = gtk_label_new (This label is underlined!nThis one is underlined in quite a funky fashion);gtk_label_set_justify (

15、GTK_LABEL (label), GTK_JUSTIFY_LEFT);gtk_label_set_pattern (GTK_LABEL (label),_ _ _ _ _ _ _ _);gtk_container_add (GTK_CONTAINER (frame), label);gtk_box_pack_start (GTK_BOX (vbox), frame, FALSE, FALSE, 0);gtk_widget_show_all (window);gtk_main ();r e t u r n ( 0 ) ;/* 示例结束* /图9 - 1是上面代码的运行结果。这个例子展示了G t k L a b e l构件的各种属性。 图9-1 标签构件箭头构件GtkArrowG t k A r r o w (箭

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 商业/管理/HR > 管理学资料

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号