GIF89a;
Mass Deface 0 def keys(self): return range(len(self.object)) def GetSubList(self): sublist = [] for key in self.keys(): try: value = self.object[key] except KeyError: continue def setfunction(value, key=key, object=self.object): object[key] = value item = make_objecttreeitem("%r:" % (key,), value, setfunction) sublist.append(item) return sublist class DictTreeItem(SequenceTreeItem): def keys(self): keys = self.object.keys() try: keys.sort() except: pass return keys from types import * dispatch = { IntType: AtomicObjectTreeItem, LongType: AtomicObjectTreeItem, FloatType: AtomicObjectTreeItem, StringType: AtomicObjectTreeItem, TupleType: SequenceTreeItem, ListType: SequenceTreeItem, DictType: DictTreeItem, InstanceType: InstanceTreeItem, ClassType: ClassTreeItem, } def make_objecttreeitem(labeltext, object, setfunction=None): t = type(object) if t in dispatch: c = dispatch[t] else: c = ObjectTreeItem return c(labeltext, object, setfunction) # Test script def _test(): import sys from Tkinter import Tk root = Tk() root.configure(bd=0, bg="yellow") root.focus_set() sc = ScrolledCanvas(root, bg="white", highlightthickness=0, takefocus=1) sc.frame.pack(expand=1, fill="both") item = make_objecttreeitem("sys", sys) node = TreeNode(sc.canvas, None, item) node.update() root.mainloop() if __name__ == '__main__': _test()