source: TreeView directory
import pygtk
pygtk.require("2.0")
import gtk
NAME="TreeView directory"
data_tree = {
"d0": { "d00": {}
},
"d1": { "d10": { "d100": {},
"d101": {},
},
"d11": {}
},
"d2": {}
}
def create_treestore(treestore, tree, iter_parent):
for key in tree.keys():
iter = treestore.append(iter_parent, (key, 0))
treestore.set(iter)
create_treestore(treestore, tree[key], iter)
class t_treeview_dir(gtk.Window):
def __init__(self):
gtk.Window.__init__(self)
self.set_title("Treeview")
self.set_geometry_hints(min_width=200, min_height=200)
self.connect("destroy", gtk.main_quit)
self.tree = gtk.TreeStore(str, int)
create_treestore(self.tree, data_tree, None)
self.treeview = gtk.TreeView()
r = gtk.CellRendererText()
self.treeview.insert_column_with_attributes(-1, "Name", r, text=0)
self.treeview.insert_column_with_attributes(-1, "Click", r, text=1)
select = self.treeview.get_selection()
select.set_mode(gtk.SELECTION_SINGLE)
select.unselect_all()
self.treeview.set_model(self.tree)
self.treeview.expand_all()
self.treeview.connect("cursor-changed", self.on_treeview_cursor_changed)
self.treeview.show()
self.add(self.treeview)
def on_treeview_cursor_changed(self, treeview):
print "Treeview Cursor changed"
s = treeview.get_selection()
(treestore, iter) = s.get_selected()
if iter is None:
print "nothing selected"
else:
data0 = treestore.get_value(iter, 0)
data1 = treestore.get_value(iter, 1)
treestore.set_value(iter, 1, data1+1)
print "Selected:", data0, data1
t = t_treeview_dir()
t.show()
gtk.main()