0

我现在有点难过,我使用 TextView 作为状态日志,每当发生某些事情时都会添加新行,这是我使用的功能,可能不正确但它确实有效但是我不能让它添加更改整条线的颜色。

def logtostatus(self, text):
    tvLog = self.tabs['Status'][1].get_children()[0].get_children()[0]
    buf = tvLog.get_buffer()
    start = buf.get_end_iter()
    buf.insert(start, text+"\n")
    end = buf.get_end_iter()

这确实插入了文本,我有各种版本试图使用 TextTag,但它拒绝工作,所以因为我没有想法,我在问你们所有人,请帮忙,这让我发疯。

谢谢

4

1 回答 1

2

这对我有用:

from gi.repository import Gtk

class MainWindow(Gtk.Window):
    def __init__(self):
        super(MainWindow, self).__init__()
        self.connect("destroy", lambda x: Gtk.main_quit())

        tb = Gtk.TextBuffer()
        tv = Gtk.TextView(buffer = tb)

        for color in ("red", "yellow", "green", "blue", "white"):
            tb.insert_markup(
                tb.get_end_iter(),
                '<span color="{:s}">This is a test message</span>\n'.format(color),
                -1)

        self.add(tv)
        self.show_all()

    def run(self):
        Gtk.main()


def main(args):
    mainwdw = MainWindow()
    mainwdw.run()

    return 0

if __name__ == '__main__':
    import sys
    sys.exit(main(sys.argv))

这似乎是玩颜色最简单的方法。这是结果:

在此处输入图像描述

于 2017-05-22T05:36:12.220 回答