Python 设置高亮显示行时CellRenderText的前景色
当我有一个Python 设置高亮显示行时CellRenderText的前景色,python,gtk,pygtk,gtktreeview,cellrenderer,Python,Gtk,Pygtk,Gtktreeview,Cellrenderer,当我有一个gtk.cellRenderText时,我可以将其前景颜色与树存储的一个列相关联,并将前景集属性设置为True,以更改该列中文本的颜色。但是,当选择带有彩色列的行时,其颜色将消失,并与任何选定单元格的颜色相同。选择颜色时,如何更改颜色?我遇到了相同的问题,在尝试不同的选项后,使用标记属性而不是文本属性解决了问题。请查找以下在Ubuntu Maverick中工作的示例: #!/usr/bin/python import gtk
gtk.cellRenderText
时,我可以将其前景
颜色与树存储的一个列相关联,并将前景集
属性设置为True,以更改该列中文本的颜色。但是,当选择带有彩色列的行时,其颜色将消失,并与任何选定单元格的颜色相同。选择颜色时,如何更改颜色?我遇到了相同的问题,在尝试不同的选项后,使用标记
属性而不是文本
属性解决了问题。请查找以下在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()
#/usr/bin/python
进口gtk
类应用程序(对象):
定义初始化(自):
window=gtk.window()
型号=gtk.TreeStore(str)
追加(无,行=('normalrow',))
model.append(无,行=('Red row',))
treeview=gtk.treeview(模型)
renderer=gtk.CellRendererText()
column=gtk.TreeViewColumn('column',renderer,markup=0)
treeview.append_列(列)
scrolled_window=gtk.scrolled window()
滚动窗口。添加(treeview)
添加(滚动窗口)
window.connect('destroy',lambda w:gtk.main_quit())
window.show_all()
def运行(自):
gtk.main()
如果uuuu name uuuuuu='\uuuuuuu main\uuuuuuu':
应用程序().run()
在我正在处理的包含多个列的更复杂的树状视图中,
markup
属性在未选中行时似乎不起作用。无论如何,同时使用标记
和前景
属性似乎很好。yeup非常奇怪。。不过非常感谢,使用这两种方法!其中提到“此方法[标记]与上述[属性]之间的一个区别是,无论行是否被选中或处于焦点,其效果都适用。”但我仍然想知道,如果没有标记,它是否可能实现。