Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/291.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python Glade GTK TextBuffer更改或设置颜色_Python_Colors_Gtk_Gtk Textbuffer - Fatal编程技术网

Python Glade GTK TextBuffer更改或设置颜色

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

我有一个包含文本视图的processwindow。Textview有一个textbuffer。使用以下代码,我可以在这个textbuffer-->textview--processwindow中打印一些文本

我想更改文本缓冲区的颜色。我怎么能做到

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)