Установите Cellrenderertext Foreground Color, когда ряд выделен
-
26-09-2019 - |
Вопрос
Когда у меня есть 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
и foreground
Свойства в то же время, кажется, работают нормально.