gtk GtkTextView 使用尝试

来源:互联网 发布:linux查看dns配置 编辑:程序博客网 时间:2024/04/30 00:02



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






















0 0
原创粉丝点击