import pygtk pygtk.require("2.0") import gtk items = ['a', 'b', 'c', 'd'] def callback(*params): print params model = gtk.ListStore(str) model.connect("rows-reordered", callback) #model.connect("row-changed", callback) for i in items: model.append((i,)) w = gtk.Window() w.connect("destroy", gtk.main_quit) v = gtk.TreeView(model) v.set_size_request(300, 200) v.set_reorderable(True) c = gtk.TreeViewColumn("File", gtk.CellRendererText(), text=0) v.append_column(c) w.add(v) w.show_all() gtk.main()