in python you can do def cell_data_func(self, tree_column, cell, tree_model, iter, data): if tree_column is self.col_a: # code else if tree_column is self.col_b: # code
see How do I check if two variables reference the same object in Python? <https://stackoverflow.com/questions/3647546/how-do-i-check-if-two-variables-reference-the-same-object-in-python> you have make col_a and col_b class members But I think it's better to just write two functions: #!/usr/bin/env python3 import gi gi.require_version('Gtk', '3.0') from gi.repository import Gtk from gi.repository import Pango class TreeView(Gtk.TreeView): def __init__(self, model): Gtk.TreeView.__init__(self, model) cell_a = Gtk.CellRendererText() col_a = Gtk.TreeViewColumn('int', cell_a) col_a.set_cell_data_func(cell_a, self.func_a, None) self.append_column(col_a) cell_b = Gtk.CellRendererText() col_b = Gtk.TreeViewColumn('str', cell_b) col_b.set_cell_data_func(cell_b, self.func_b, None) self.append_column(col_b) def func_a(self, tree_column, cell, tree_model, tree_iter, data): cur_value = tree_model[tree_iter][0] if cur_value == 0: cell.set_property('text', '') else: cell.set_property('text', str(cur_value)) def func_b(self, tree_column, cell, tree_model, tree_iter, data): cell.set_property('text', tree_model[tree_iter][1]) class TreeModel(Gtk.ListStore): def __init__(self): Gtk.ListStore.__init__(self, int, str) # int and string self.append([1, '111']) # first column "empty" but displayed as "0" # second column "empty" (but a workaround) self.append([0, 'Hi!']) # RIGHT alignment (second column) not working self.append([3, '3']) class Window(Gtk.Window): def __init__(self): Gtk.Window.__init__(self, title='Mein Gtk-Fenster') self.set_default_size(400, 300) self.model = TreeModel() self.view = TreeView(self.model) # layout self.layout = Gtk.Grid() self.add(self.layout) self.layout.attach(self.view, 0, 1, 1, 1) self.connect('destroy', Gtk.main_quit) self.show_all() if __name__ == '__main__': win = Window() Gtk.main() 2018-05-08 22:09 GMT+02:00 <c.bu...@posteo.jp>: > On 2018-05-08 14:20 Luca Bacci <luca.bacci...@gmail.com> wrote: > > - Use Cell Data Func for ultimate flexibility > > That is the signature > Gtk.TreeCellDataFunc(tree_column, cell, tree_model, iter, data) > > But how do I know which cell (row and column) is affected? > I can extrat the row with tree_model[iter] but not the column. > > "tree_column" is of type Gtk.TreeViewColumn but doesn't even know its > position (first, second, ... column). There is no integer indicating > that. > _______________________________________________ > gtk-app-devel-list mailing list > gtk-app-devel-list@gnome.org > https://mail.gnome.org/mailman/listinfo/gtk-app-devel-list > _______________________________________________ gtk-app-devel-list mailing list gtk-app-devel-list@gnome.org https://mail.gnome.org/mailman/listinfo/gtk-app-devel-list