Uno de los problemitas que se me presentaron a la hora de desarrollar con python y glade fue el uso del Gtk.Treeview. Este es un pequeño ejemplo que quize mostrar por si alguien lo necesite y quizas ahorrarle algo de tiempo.

import gtk
from gtk import glade

class TreeView:

def __init__(self):
    self.xml = glade.XML(”treview.glade”,None,None)
    self.xml.signal_autoconnect(self)

    # Gtk.Entry: ent_item
    self.ent_item = self.xml.get_widget(”ent_item”)
    # Gtk.Entry: ent_subitem
    self.ent_subitem = self.xml.get_widget(”ent_subitem”)

    # Gtk.Button: bnt_item
    self.item = self.xml.get_widget(”btn_item”)
    self.item.connect(”clicked”,self.On_Add_Parent)
    # Gtk.Button: bnt_subitem
    self.subitem = self.xml.get_widget(”btn_subitem”)
    self.subitem.connect(”clicked”,self.On_Add_Child)

    # Gtk.Button: bnt_expand
    self.expand = self.xml.get_widget(”btn_expand”)
    self.expand.connect(”clicked”,self.On_Expand)
    # Gtk.Button: bnt_collapse
    self.collapse = self.xml.get_widget(”btn_collapse”)
    self.collapse.connect(”clicked”,self.On_Collapse)

    self.node = “”
    # Gtk.Window: w_treeview
    win = self.xml.get_widget(”w_treeview”)
    win.connect(”destroy”,gtk.main_quit)
    win.show()

def tree(self):
    self.treestore = gtk.TreeStore(str)
    # Gtk.TreeView: tree
    self.tree = self.xml.get_widget(”tree”)
    self.tree.set_model(self.treestore)
    column = gtk.TreeViewColumn(”Titulo”,gtk.CellRendererText(),text=0)
    self.tree.append_column(column)

def On_Add_Parent(self,event):
    self.node = self.treestore.append(None, [self.ent_item.get_text()])

def On_Add_Child(self,event):
    self.treestore.append(self.node, [self.ent_subitem.get_text()])

def On_Expand(self,event):
    self.tree.expand_all()

def On_Collapse(self,event):
    self.tree.collapse_all()

def main(self):
    gtk.main()
if __name__ == ‘__main__’:
    w = TreeView()
    w.tree()
    w.main()

treeview