ListBox avec Python et GTK+

Bonsoir,

J’aimerai pouvoir récupérer la valeur d’un widget de l’enfant d’une ListBox.

#!/usr/bin/python
# coding: utf-8

from gi.repository import Gtk
import pygame

class Lecteur(Gtk.Window):

        def __init__(self):
                ''' Fonction de construction de l'interface '''
                Gtk.Window.__init__(self, title="Test")
                pygame.mixer.init()

                box = Gtk.Box()
                listbox = Gtk.ListBox()
                addfile = Gtk.FileChooserButton()

                listbox.insert(Gtk.Label("label test"), 0)

                listbox.connect('row-activated', self.ecouter)

                box.pack_start(listbox, True, True, 0)
                box.pack_start(addfile, True, True, 0)

                self.add(box)

window = Lecteur()
window.connect('delete-event', Gtk.main_quit)
window.set_border_width(10)
window.show_all()
Gtk.main()

Dans mon exemple, j’ai un label comme enfant de la listebox, et je voudrai récupérer la valeur du label justement. J’ai beau fouillé la doc et les forums je ne trouve pas grand-chose.

Je vous remercie.

Bon et bien j’ai résolu mon problème avec une liste, une boucle, et le widget ListBoxRow. Je ne sais pas si la méthode est bonne, mais ça fonctionne.

Je mets le code au cas où quelqu’un aurait un problème similaire.

# coding: utf-8

from gi.repository import Gtk
import pygame

class Lecteur(Gtk.Window):

        def __init__(self):
                ''' Fonction de construction de l'interface '''
                Gtk.Window.__init__(self, title="Test")
                pygame.mixer.init()

                listbox = Gtk.ListBox()
                # Tous les labels dans une liste puis on les ajoutent à la ListBox
                items = ['bonjour', 'toi', 'je', 'suis', 'ici']
                for i in items:
                        listbox.add(Gtk.Label(i))

                listbox.connect('row-selected', self.ecouter, items)
                self.add(listbox)

        def ecouter(self, listbox, row, items):
                # On Affiche le label de la ListBox avec un get_index sur la ListBoxRow qui récupère la position
                print(items[row.get_index()])

window = Lecteur()
window.connect('delete-event', Gtk.main_quit)
window.set_border_width(10)
window.show_all()
Gtk.main()