GTK+2.0-----文本构件GtkTex t GTK+2.0 2008-12-13 12:10:32 阅读514 评论2 字号:大中小 订阅 G t k Te x t(文本构件)允许多行显示或编辑文本。它支持多种颜色以及多种字体的文本允许它们以任何需要的形式混合显示,还有许多与E m a c s 兼容的文本编辑命令。 文本构件支持完全的剪切/粘贴功能,还包括双击选择一个单词和三击选择整行的功能。 注意,请将G t k Te x t 和G t k E n t r y构件区分开。G t k E n t r y只能显示或编辑一行字符串,而不能将多种字体和多种颜色的文本混排。 创建、配置文本构件 创建新 Te x t 构件只有一个函数: GtkWidget *gtk_text_new( GtkAdjustment *hadj,GtkAdjustment *vadj ); 其中的参数允许为文本构件指定水平和垂直的调整对象,并且可以用于跟踪构件的位置。 向 g t k _ t e x t _ n e w 函数传递 N U L L,函数会为文本构件创建自己的调整对象。 void gtk_text_set_adjustments( GtkText *text,GtkAdjustment *hadj,GtkAdjustment *vadj ); 上面的函数可以随时改变文本构件的水平和垂直的调整对象。 当文本构件中的文本超过构件能显示的空间时,文本构件不会自动显示滚动条。所以我们必须另行创建滚动条,将它们添加到要显示的窗口布局上。 vscrollbar = gtk_vscrollbar_new (GTK_TEXT(text)->vadj); gtk_box_pack_start(GTK_BOX(hbox), vscrollbar, FALSE, FALSE, 0); gtk_widget_show (vscrollbar); 上面的小段代码创建了一个垂直滚动条,并将它添加到文本构件的垂直 a d j u s t m e n t 构件上,然后将它们组装到一个“组装盒”中。但是文本构件目前不支持水平滚动条。 文本构件有两个主要用途:允许用户编辑一段文本,或向用户显示多行文本。为了在两种操作模式之间进行切换,文本构件有以下函数: void gtk_text_set_editable( GtkText *text,gint editable ); 其中,e d i t a b l e 参数可以是 T R U E 或FA L S E,它指定用户是否可以编辑文本内容。当 Te x t 构件是可编辑的时,会在当前插入点显示一个光标。 当然,不仅可以使用文本构件的这两种模式。还可以随时切换构件的可编辑模式,随时插入文本。 文本构件在文本如果太长,一行显示不下时会换行。缺省方式是在单词之间分行,可以用以下函数将其改变: void gtk_text_set_word_wrap( GtkTex...