Linux, Python, UbuntuJanuary 27, 2007 10:58 pm
Python y Glade - Treeview
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()
|
The URI to TrackBack this entry is: http://nachxs.blogsome.com/2007/01/27/python-y-glade-treeview/trackback/
RSS feed for comments on this post.
Line and paragraph breaks automatic, e-mail address never displayed, HTML allowed: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <code> <em> <i> <strike> <strong>
Gracias he estado buscando un ejemplo desde hace rato. unos comentarios:
Sobre el codigo:
- no necesitas pasar None,None a la func XML
- autoconnect con un dict consume menos tiempo y es mas facil de mantener
- no posteastes el treview.glade
sobre el blog
- el engine del blog reemplaza las ” y ‘ por caracteres de la alta parte del ASCII que los hacen invalidos para el interprete de python, asi que no se puede hacer un “copy&paste” para probar el codigo.
Comment by jorge — October 10, 2007 @ 7:52 am
OK Jorge, gracias por tu comentario, tendre en cuenta sobre la publicacion de codigo con respecto a lo que me dices.
Comment by NachXs — October 13, 2007 @ 3:24 pm