繁体   English   中英

在GTK 3.0中更改文本的颜色

[英]Change color of text in GTK 3.0

我使用的是Gtk.TextBuffer()一内部Gtk.TextView()以在屏幕上书写一些文字。 我希望经常书写时更改文本的颜色。 例如。

In Green -- Printing Green color
In Red   -- Printing Red color
In Green -- Printing Green color
In Red   -- Printing Red color

您能否建议一些功能来做到这一点。

要指定缓冲区中的某些文本应具有特定的格式,必须定义一个标签来保存该格式信息,然后使用create_tag("tag name", property)apply_tag(tag, start_iter, end_iter) create_tag("tag name", property)将标签应用于文本区域apply_tag(tag, start_iter, end_iter) ,例如:

tag = textbuffer.create_tag("orange_bg", background="orange")
textbuffer.apply_tag(tag, start_iter, end_iter)

以下是应用于文本的一些常见样式:

  • 背景颜色(“背景”属性)
  • 前景颜色(“前景”属性)
  • 下划线(“下划线”属性)
  • 粗体(“重量”属性)
  • 斜体(“样式”属性)
  • 删除线(“删除线”属性)
  • 证明(“证明”属性)
  • 大小(“大小”和“大小点”属性)
  • 文字换行(“自动换行模式”属性)

您还可以稍后使用remove_tag()删除特定标签,或者通过调用remove_all_tags()删除给定区域中的所有标签。

从GTK3.16开始,您可以使用pango标记。

self.textbuffer.insert_markup(iter, markup);

self.textbuffer.insert_markup(self.textbuffer.get_end_iter(), "<b>and some bold text</b>", -1)

StackOverflow答案与示例

GTK3 +文档: https : //developer.gnome.org/gtk3/stable/GtkTextBuffer.html#gtk-text-buffer-insert-markup

将文本插入标记中iter的位置。 标记将全部插入,并且必须为零终止且有效的UTF-8。 发出“插入文本”信号,可能多次; 插入实际上发生在信号的默认处理程序中。 iter将在返回时指向插入的文本的末尾。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM