突出显示一行时设置cellrenderertext前景颜色
作者:互联网
当我有一个gtk.CellRendererText时,可以将其前景颜色与树存储的列之一相关联,并将front-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属性似乎不起作用.无论如何,同时使用标记和前景属性似乎可以正常工作.
标签:gtk,gtktreeview,pygtk,cellrenderer,python 来源: https://codeday.me/bug/20191023/1916122.html