修改PyGObject中所有TreeView项的背景

时间:2019-07-01 08:23:19

标签: python-3.x gtk pygobject

我希望Gtk.TreeView中的项目具有(默认)不同的颜色。下面的示例代码无效。背景保持白色。

#!/usr/bin/env python3

import gi
gi.require_version('Gtk', '3.0')
from gi.repository import Gtk
from gi.repository import Gdk

class MyTree(Gtk.TreeView):
    def __init__(self):
        Gtk.TreeView.__init__(self)

        # color
        color = Gdk.RGBA(221, 29, 157, 1)

        # model
        model = Gtk.TreeStore(int)
        for i in range(4):
            model.append(None, [i])
        self.set_model(model)

        # column
        ren = Gtk.CellRendererText(background_set=True,
                                   background_rgba=color)
        col = Gtk.TreeViewColumn('int', ren)
        col.add_attribute(ren, 'text', 0)
        self.append_column(col)


class MyWindow(Gtk.Window):
    def __init__(self):
        Gtk.Window.__init__(self)
        tree = MyTree()
        self.add(tree)
        self.connect('destroy', Gtk.main_quit)


if __name__ == '__main__':
    win = MyWindow()
    win.show_all()
    Gtk.main()

1 个答案:

答案 0 :(得分:0)

那只是一个“ bug”。我错误地使用了Gdk.RGBA()。该参数仅在0.01.0之间有效。

color = Gdk.RGBA(.2, .9, .15, 1)