O fato de o set_rules_hint(True)
exibir ou não cores de linha alternadas é compatível com o tema. Com o padrão do Ubuntu, Ambience, não haverá linhas alternadas. Como a documentação afirma:
Não use só porque prefere a aparência dos governados árvore; essa é uma questão para o tema. Alguns temas desenham linhas de árvores em cores alternadas, mesmo quando as regras são desativadas, e usuários que prefira que a aparência o tempo todo pode escolher esses temas. Você deve chamar essa função apenas como uma dica semântica para o mecanismo de tema que sua árvore faz cores alternadas útil de um funcional ponto de vista (uma vez que tem muitas colunas, geralmente).
Dito isto, você pode forçá-lo se você realmente quiser. Por exemplo, isso funcionará no Ambiente:
view.set_rules_hint(True)
style_context = self.get_style_context()
css_provider = Gtk.CssProvider()
css = """
GtkTreeView row:nth-child(even) {
background-color: shade(@base_color, 0.9);
}
GtkTreeView row:nth-child(odd) {
background-color: shade(@base_color, 1.0);
}
"""
css_provider.load_from_data(css.encode('UTF-8'))
screen = Gdk.Screen.get_default()
style_context.add_provider_for_screen(screen, css_provider,
Gtk.STYLE_PROVIDER_PRIORITY_APPLICATION)
Embora você precise estar ciente de que isso pode interferir em outros temas. Alguns temas usarão @theme_base_color
em vez de @base_color
Você pode, é claro, codificar a cor, mas quem sabe como vai ficar com o tema do usuário ...