#!/usr/bin/python2.2 import gobject import gtk import sys data1 = [('A', '3'), ('B', '2'), ('C', '1') ] data2 = [('X', '300'), ('Y', '200'), ('Z', '100') ] def switchCB(widget, val): (data, store) = val store.clear() for (n, p) in data: iter = store.append(None) store.set_value(iter, 0, n) store.set_value(iter, 1, p) def quitCB(widget, data): gtk.mainquit() sys.exit(0) # # MAIN Start # win = gtk.Window() store = gtk.TreeStore(gobject.TYPE_STRING, gobject.TYPE_STRING) for (n, p) in data1: iter = store.append(None) store.set_value(iter, 0, n) store.set_value(iter, 1, p) view = gtk.TreeView(store) view.set_size_request (500, 300) view.set_property("headers-visible", gtk.TRUE) col = gtk.TreeViewColumn(None, gtk.CellRendererText(), text=0) col.set_clickable(gtk.TRUE) col.set_sort_column_id(0) col.set_sizing(100) view.append_column(col) col = gtk.TreeViewColumn(None, gtk.CellRendererText(), text=1) col.set_clickable(gtk.TRUE) col.set_sort_column_id(1) col.set_sizing(100) view.append_column(col) sw = gtk.ScrolledWindow() sw.add(view) vbox = gtk.VBox() vbox.pack_start(sw, gtk.FALSE, gtk.FALSE) hbox=gtk.HBox() b = gtk.Button("Data 1") b.connect("clicked", switchCB, (data1, store)) hbox.pack_start(b, gtk.FALSE, gtk.FALSE) b = gtk.Button("Data 2") b.connect("clicked", switchCB, (data2, store)) hbox.pack_start(b, gtk.FALSE, gtk.FALSE) b = gtk.Button("Quit") b.connect("clicked", quitCB, None) hbox.pack_start(b, gtk.FALSE, gtk.FALSE) vbox.pack_start(hbox, gtk.FALSE, gtk.FALSE) win.add(vbox) win.show_all() gtk.main()