En python avec Gtk 3.0, j'essaye d'obtenir une fenêtre avec un notebook. Dans ce notebook, il y a des expanders. Chaque expander contient un treeview.

Après plusieurs tentative, j'obtient ce code :

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
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
 
 
import gi
gi.require_version('Gtk', '3.0')
from gi.repository import Gtk
 
class MyWindow(Gtk.Window):
 
    def __init__(self):
        Gtk.Window.__init__(self, title="Hello World")
 
        # Create liststore which will be contained within treeview
        # liststore has 3 rows and 3 columns
        self.store = Gtk.ListStore(str, str, float)
        self.store.append(["string1.1", "string1.2", 1.0])
        self.store.append(["string2.1", "string2.2", 2.0])
        self.store.append(["string3.1", "string3.2", 3.0])
 
        # Create treeview which will be contained within one expander
        # treeview has 3 columns and contain liststore
        self.tree = Gtk.TreeView(self.store)
        for i, column_title in enumerate(["col1", "col2", "col3"]):
            renderer = Gtk.CellRendererText()
            column = Gtk.TreeViewColumn(column_title, renderer, text=i)
            self.tree.append_column(column)
 
        # Addind a callback to selection_changed event of treeview
        select = self.tree.get_selection()
        select.connect("changed", self.on_tree_selection_changed)
 
        # Create expander which will be contained within one notebook page
        # Adding treeview inside expander
        self.page1 = Gtk.Expander()
        self.page1.set_border_width(10)
        self.page1.add(self.tree)
 
        # Create notebook and adding expander inside first page
        self.notebook = Gtk.Notebook()
        self.add(self.notebook)
        self.notebook.append_page(self.page1, Gtk.Label('Page1'))
 
        self.Window = Gtk.Window()
        self.show_all()
 
    def on_tree_selection_changed(self, selection):
        model, treeiter = selection.get_selected()
        if treeiter != None:
          print("You selected", model[treeiter][0])
 
win = MyWindow()
win.connect("delete-event", Gtk.main_quit)
win.show_all()
Gtk.main()
Je n'arrive pas à afficher le treeview dans l'expander. Mais sans l'expander le treeview s'affiche correctement

Je travail sur une Ubuntu 12.04 et je lance mon programme en utilisant la commande "python ihm.py"

Quelqu'un saurait ou j'ai fait l'erreur car je ne trouve pas...