当我有一个gtk.CellRendererText,我可以将其foreground颜色与树商店的一列相关联,而foreground-set属性设置为True,以改变该列中的文本的颜色。然而,选择与颜色的列行的时候,它的颜色消失,是与任何选定单元格的颜色。如何改变颜色时,它的选择?

有帮助吗?

解决方案

我有同样的问题,并尝试不同的选择,使用markup属性代替的text财产后解决了这个问题。请在下面找到并例子在Ubuntu特立独行的作品:

#!/usr/bin/python                               
import gtk


class Application(object):
    def __init__(self):
        window = gtk.Window()

        model = gtk.TreeStore(str)
        model.append(None, row=('Normal row',))
        model.append(None, row=('<span foreground="red">Red row</span>',))

        treeview = gtk.TreeView(model)
        renderer = gtk.CellRendererText()
        column = gtk.TreeViewColumn('Column', renderer, markup=0)
        treeview.append_column(column)

        scrolled_window = gtk.ScrolledWindow()
        scrolled_window.add(treeview)

        window.add(scrolled_window)
        window.connect('destroy', lambda w: gtk.main_quit())

        window.show_all()


    def run(self):
        gtk.main()


if __name__ == '__main__':
    Application().run()

在与多列是我的工作更复杂的树状视图中,markup财产似乎并没有工作的时候没有选择的行。无论如何,在同一时间都markupforeground属性的使用似乎很好地工作。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top