Разные цвета для нечетных и четных строк в PyGObject TreeView - PullRequest
0 голосов
/ 11 мая 2018

Мне нужны два цвета строки в Gtk.TreeView каждый для нечетных и четных строк.

Этот минимальный пример запускается без ошибок, но не влияет нацвета.

#!/usr/bin/env python3
import datetime
import gi
gi.require_version('Gtk', '3.0')
from gi.repository import Gtk
from gi.repository import Gdk


class TreeView(Gtk.TreeView):
    def __init__(self):
        # model
        self.model = Gtk.ListStore.new([int])
        for i in range(5):
            self.model.append([i])
        # view
        Gtk.TreeView.__init__(self, self.model)

        # style
        css_provider = Gtk.CssProvider()
        css_provider.load_from_data('''
            Gtk.TreeView row:nth-child(even) { background-color: #d0e4f7 }
            Gtk.TreeView row:nth-child(odd) { background-color: #fdffff }
        '''.encode('utf-8'))
        Gtk.StyleContext.add_provider_for_screen(Gdk.Screen.get_default(),
                                                 css_provider,
                                                 Gtk.STYLE_PROVIDER_PRIORITY_APPLICATION)
        self.set_rules_hint(True)


        col = Gtk.TreeViewColumn('int',
                                   Gtk.CellRendererText(),
                                   text=0)
        self.append_column(col)

class Window(Gtk.Window):
    def __init__(self):
        Gtk.Window.__init__(self, title='Mein Gtk-Fenster')
        self.set_default_size(100, 120)

        self.view = TreeView()

        self.add(self.view)

        self.connect('destroy', Gtk.main_quit)
        self.show_all()

if __name__ == '__main__':
    win = Window()
    Gtk.main()

1 Ответ

0 голосов
/ 12 мая 2018

Вы должны изменить Gtk.TreeView на GtkTreeView, без точки.

...