NachXs Blog

LinuxFebruary 20, 2007 4:03 am

MenuetOS es un pequeño S.O. capaz de entrar en un disquete. En el trascurso de este tiempo pude observar varias alternativas de este tipo pero basadas en Unix, pero definitivamente esta es una opcion diferente, dado que este S.O., no esta basado en Unix sino que esta totalmente desarrollado en Assembler. Creo que Windows ahora tiene una buena competencia jeje.

M64048a

Linux, Python, UbuntuFebruary 2, 2007 8:00 pm

Para este caso le agregamos iconos en los nodos y el siempre infaltable Scroll.

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.ScrollWindow: scroll
    self.scroll = self.xml.get_widget(”scroll”)
    self.scroll.set_policy(gtk.POLICY_NEVER,gtk.POLICY_AUTOMATIC)

    # 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(gtk.gdk.Pixbuf,str)
    # Gtk.TreeView: tree
    self.tree = self.xml.get_widget(”tree”)
    self.tree.set_model(self.treestore)
    column_image = gtk.TreeViewColumn(”",gtk.CellRendererPixbuf(),pixbuf=0)
    column_text = gtk.TreeViewColumn(”",gtk.CellRendererText(),text=1)
    self.tree.append_column(column_image)
    self.tree.append_column(column_text)

def On_Add_Parent(self,event):
    self.node_parent_image = gtk.gdk.pixbuf_new_from_file(”reload.png”)
    self.node = self.treestore.append(None,[self.node_parent_image, self.ent_item.get_text()])

def On_Add_Child(self,event):
    self.node_child_image = gtk.gdk.pixbuf_new_from_file(”new.png”)
    self.treestore.append(self.node,[self.node_child_image, 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()

TreeView2