我在Gtk.TextBuffer()
内使用Gtk.TextView()
在屏幕上写下一些文字。我希望在经常写作时改变文字的颜色。例如
In Green -- Printing Green color
In Red -- Printing Red color
In Green -- Printing Green color
In Red -- Printing Red color
你能否建议一些功能来做这件事。
答案 0 :(得分:0)
要指定缓冲区中的某些文字应具有特定格式,您必须定义标记以保存该格式信息,然后使用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()
删除指定地区内的所有代码。
答案 1 :(得分:0)
从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 answer with example
GTK3 +文档: https://developer.gnome.org/gtk3/stable/GtkTextBuffer.html#gtk-text-buffer-insert-markup
将文本插入标记中的位置iter。标记将被插入 完整,并且必须为零终止且有效的UTF-8。发出 “插入文本”信号,可能多次;实际插入 发生在信号的默认处理程序中。 iter将指向 返回时插入文本的结尾。