您的位置:首页 > 其它

gtk GtkTextView 使用尝试

2014-01-11 15:14 204 查看
GtkTextView:代表了窗口中可见的文本框,用来显示GtkTextBuffer.

GtkTextBuffer:文本框正文的缓冲区,文本框文字的插入、删除都是对这一类变量进行操作。

GtkTextIter:保存文字在buffer中位置的结构。

GtkTextMark:A position in the buffer preserved across buffer modifications

GtkTextTag:用来给指定的文字添加一些标记,改变指定区域的文字的显示效果。如:字体的颜色、大小的改变。

GtkTextTagTable:是GtkTextTag标记的集合表。

GtkTextIter — Text buffer iterator

GtkWidget *view;
GtkTextBuffer *buffer;
GtkTextIter start, end;
GtkTextIter iter;



GtkTextTag

所有可以设置的tag 属性参见https://developer.gnome.org/gtk3/stable/GtkTextTag.html

"direction"                GtkTextDirection      : Read / Write
"editable"                 gboolean              : Read / Write
"editable-set"             gboolean              : Read / Write
"family"                   gchar*                : Read / Write
"family-set"               gboolean              : Read / Write
"font"                     gchar*                : Read / Write
"font-desc"                PangoFontDescription*  : Read / Write
"foreground"               gchar*                : Write
"foreground-gdk"           GdkColor*             : Read / Write
"foreground-rgba"          GdkRGBA*              : Read / Write
"foreground-set"           gboolean              : Read / Write
"indent"                   gint                  : Read / Write
"indent-set"               gboolean              : Read / Write
"invisible"                gboolean              : Read / Write
"invisible-set"            gboolean              : Read / Write
"justification"            GtkJustification      : Read / Write

...................例子

GdkRGBA  rgba;
rgba.red=(gdouble)0xFF/(gdouble)255;/*FF69B4*/
rgba.green=(gdouble)0x14/(gdouble)255;/*DeepPink FF93*/
rgba.blue=(gdouble)0x93/(gdouble)255;
rgba.alpha=1;
gtk_text_buffer_create_tag(textViewForSearchBuff, "深粉红", "foreground-rgba", &rgba, NULL);




gtk_text_buffer_create_tag ()

buffer :
GtkTextBuffer
tag_name :
name of the new tag, or NULL. [allow-none]
first_property_name :
name of first property to set, or NULL. [allow-none]
... :
NULL-terminated list of property
names and values
Returns :
a new tag. [transfer none]
例子:

gtk_text_buffer_create_tag(buffer, "gap","pixels_above_lines", 30, NULL);
gtk_text_buffer_create_tag(buffer, "lmarg", "left_margin", 5, NULL);
gtk_text_buffer_create_tag(buffer, "blue_fg", "foreground", "blue", NULL);
gtk_text_buffer_create_tag(buffer, "gray_bg",  "background", "gray", NULL);
gtk_text_buffer_create_tag(buffer, "italic", "style", PANGO_STYLE_ITALIC, NULL);
gtk_text_buffer_create_tag(buffer, "bold",  "weight", PANGO_WEIGHT_BOLD, NULL);




GtkTextIter

gtk_text_buffer_get_iter_at_offset(buffer, &iter, 0); //获取并设置位置

gtk_text_buffer_insert(buffer, &iter, "Plain text\n", -1);
gtk_text_buffer_insert_with_tags_by_name(buffer, &iter, "Colored Text\n", -1, "blue_fg", "lmarg", NULL);
gtk_text_buffer_insert_with_tags_by_name (buffer, &iter, "Text with colored background\n", -1, "lmarg", "gray_bg", NULL);
gtk_text_buffer_insert_with_tags_by_name (buffer, &iter, "Text in italics\n", -1, "italic", "lmarg", NULL);
gtk_text_buffer_insert_with_tags_by_name (buffer, &iter, "Bold text\n", -1, "bold", "lmarg", NULL);


应用指定的tag:

gtk_text_buffer_get_start_iter (textViewForSearchBuff,&start);
gtk_text_buffer_get_end_iter (textViewForSearchBuff,&end);
gtk_text_buffer_apply_tag_by_name(textViewForSearchBuff,"blue_fg",&start,&end);



自定义主题


其他资料

各种颜色及名称:http://www.redocn.com/864236/blog/27837.html
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  gtk