Bonjour, j'ai une application en python avec interface graphique Gtk3 dans laquelle j'ai un treeview.

Lorsque je clique sur une cellule je peux l'éditer.
Le problème : il faut que je récupère l'index de la ligne et celui de la colonne pour pouvoir mettre à jours la valeur dans la bonne cellule.

Pour l'index de la ligne ça va, j'arrive à le récupérer.

Pour la colonne, après avoir fouillé à plusieurs endroits, je ne trouve pas comment récupérer l'index. Je me demande même si c'est possible. J'ose espérer que oui.

Voici un bout de code qui me permet de récupérer l'index de la ligne. L'index de la colonne est à renseigner à la main.

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
 
#!/usr/bin/env python
# -*- coding: utf-8 -*-
 
from gi.repository import Gtk
 
 
def on_renderer_edited(cellrenderer, path, new_value,  model):
    model[path][1] = new_value #  on voit ici que path représente l'index de la ligne et "1" l'index de la colonne...
 
fruits = [("banane", "jaune"),
          ("pomme", "vert"),
          ("fraise", "rouge")]
 
win = Gtk.Window()
 
liststore = Gtk.ListStore(str, str)
for item in fruits:
    liststore.append(list(item))
 
tree = Gtk.TreeView.new_with_model(liststore)
 
renderer = Gtk.CellRendererText()
renderer.set_property("editable", True)
 
renderer.connect('edited', on_renderer_edited, liststore)
 
for i, column_title in enumerate(["Fruit", "Couleur"]):
    column = Gtk.TreeViewColumn(column_title, renderer, text=i)
    tree.append_column(column)
 
win.add(tree)
 
win.show_all()
 
Gtk.main()
Ma question : y a-t-il une méthode pour récupérer l'index de la colonne ?