Python Glade GTK TextBuffer更改或设置颜色
我有一个包含文本视图的processwindow。Textview有一个textbuffer。使用以下代码,我可以在这个textbuffer-->textview--processwindow中打印一些文本 我想更改文本缓冲区的颜色。我怎么能做到Python Glade GTK TextBuffer更改或设置颜色,python,colors,gtk,gtk-textbuffer,Python,Colors,Gtk,Gtk Textbuffer,我有一个包含文本视图的processwindow。Textview有一个textbuffer。使用以下代码,我可以在这个textbuffer-->textview--processwindow中打印一些文本 我想更改文本缓冲区的颜色。我怎么能做到 import pygtk import gtk import gtk.glade def __init__(self): self.gladefile = "XXXXX.glade" self.b
import pygtk
import gtk
import gtk.glade
def __init__(self):
self.gladefile = "XXXXX.glade"
self.builder = gtk.Builder()
self.builder.add_from_file(self.gladefile)
self.builder.connect_signals(self)
self.window = self.builder.get_object("window1")
self.textbuffer = self.builder.get_object("textbuffer1")
def Print(self, text):
self.textfeld = self.textfeld + '\n' + text
self.textbuffer.set_text(self.textfeld)
你可能想看看这本书。该页的简短回答如下:
有两种方法可以影响GtkTextView中的文本属性。你可以
更改给定GtkTextView的默认属性,您可以
应用更改文本区域属性的标记
因此,如果您想更改所有文本的颜色,请在TextView上使用
Widget.override_color()
(或对于传统GTK+Widget.modify_text()
和friends)。如果只想修改部分文本,请使用TextBuffer标记。概述显示了这两个方面的示例 我自己找到了解决办法。对于我的解决方案,您需要“导入Pango”
注:
.set_text()与带有_标记的.inser_不同,因此我更改了self.textfeld命令
import pygtk
import gtk
import gtk.glade
import Pango
def __init__(self):
self.gladefile = "XXXXX.glade"
self.builder = gtk.Builder()
self.builder.add_from_file(self.gladefile)
self.builder.connect_signals(self)
self.window = self.builder.get_object("window1")
self.textbuffer = self.builder.get_object("textbuffer1")
self.e_tag = self.textbuffer.create_tag("err", foreground="#FF0000")
def Print(self, text):
self.textfeld = text + '\n'
position = self.textbuffer.get_end_iter()
self.textbuffer.insert_with_tags(position, self.textfeld, self.e_tag)