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 : |
a 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