当我有 时gtk.CellRendererText
,我可以将它的foreground
颜色与树存储的列之一关联,并将foreground-set
属性设置为 True,以更改该列中文本的颜色。However, when the row with the colored column is selected, its color disappears, and is the same as any selected cell's color. 选中后如何更改颜色?
问问题
2396 次
1 回答
6
我遇到了同样的问题,在尝试了不同的替代方案后,使用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
和foreground
属性似乎工作正常。
于 2010-10-12T08:08:07.033 回答