import gtk import gobject def delete_event(widget, event, data=None): return gtk.FALSE def destroy(widget, data=None): gtk.main_quit() def selection_changed(selection,*at): print "selection_changed" selection.selected_foreach(foreach_selection) def foreach_selection(model, path, iter): if len(path) > 1: ppath = path[-1] piter = model.get_iter(ppath) print "Artis : %s" % model.get_value(piter, 0) else: print "Artis : %s" % model.get_value(iter, 0) print "Album : %s" % model.get_value(iter, 1) print "Lokasi : %s" % model.get_value(iter, 2) def mymain(): # membuat model model = gtk.TreeStore(gobject.TYPE_STRING,gobject.TYPE_STRING, gobject.TYPE_STRING,gobject.TYPE_STRING) # mengisi model dengan data iter = model.append(None, None) # iterator baris baru model.set_value(iter, 0, "Linkin' Park") # isi kolom pertama model.set_value(iter, 1, "Hybrid Theory") # isi kolom kedua model.set_value(iter, 2, "Mobil") # isi kolom ketiga model.set_value(iter, 3, "lightblue") # isi kolom keempat citer = model.append(iter, None) # menambah baris baru sebagai child dari baris di atas # isi datanya dengan fungsi set(iterator, ....) # .... adalah pasangan kolom dengan data, mis kolom 1 berisi data "Meteora" model.set(citer, 0, None, 1, "Meteora", 2, "Rumah",3,"#8DFF14") # membuat tree view tree_view = gtk.TreeView(model) tree_view.show() # selection object selection = tree_view.get_selection() selection.set_mode(gtk.SELECTION_MULTIPLE) selection.connect("changed",selection_changed) # membuat renderer kolom 0 renderer = gtk.CellRendererText() # membuat column view col_view = gtk.TreeViewColumn("Artis",renderer, text=0) tree_view.append_column(col_view) # membuat renderer kolom 1 renderer = gtk.CellRendererText() # membuat column view col_view = gtk.TreeViewColumn("Album",renderer, text=1, background=3) tree_view.append_column(col_view) # membuat renderer kolom 2 renderer = gtk.CellRendererText() # membuat column view col_view = gtk.TreeViewColumn("Lokasi",renderer, text=2) tree_view.append_column(col_view) # membuat scrolled window scrolled_window = gtk.ScrolledWindow() scrolled_window.set_border_width(10) scrolled_window.add(tree_view) scrolled_window.show() #membuat window utama main_window = gtk.Window() main_window.set_title("Demo TreeView") main_window.connect("delete_event", delete_event) main_window.connect("destroy", destroy) main_window.add(scrolled_window) main_window.set_default_size(300,150) main_window.show() gtk.main() if __name__ == "__main__": print "start treeview3.py" mymain() print "end treeview3.py"