当行突出显示时设置 cellrenderertext 前景色

2024-03-18

当我有一个gtk.CellRendererText,我可以关联它的foreground用树存储的一列着色,并设置foreground-set属性设置为 True,以更改该列中文本的颜色。但是,当选择具有彩色列的行时,其颜色会消失,并且与任何选定单元格的颜色相同。选择后如何更改颜色?


我遇到了同样的问题,在尝试了不同的替代方案后,使用markup属性而不是text财产解决了问题。请在下面找到适用于 Ubuntu Maverick 的示例:

#!/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当未选择该行时,该属性似乎不起作用。无论如何,两者的使用markup and foreground同时属性似乎工作得很好。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

当行突出显示时设置 cellrenderertext 前景色 的相关文章

随机推荐