from repr import Repr from Tkinter import * class FrameViewer: def __init__(self, root, frame): self.root = root self.frame = frame self.top = Toplevel(self.root) self.repr = Repr() self.repr.maxstring = 60 self.load_variables() def load_variables(self): row = 0 if self.frame.f_locals is not self.frame.f_globals: l = Label(self.top, text="Local Variables", borderwidth=2, relief="raised") l.grid(row=row, column=0, columnspan=2, sticky="ew") row = self.load_names(self.frame.f_locals, row+1) l = Label(self.top, text="Global Variables", borderwidth=2, relief="raised") l.grid(row=row, column=0, columnspan=2, sticky="ew") row = self.load_names(self.frame.f_globals, row+1) def load_names(self, dict, row): names = dict.keys() names.sort() for name in names: value = dict[name] svalue = self.repr.repr(value) l = Label(self.top, text=name) l.grid(row=row, column=0, sticky="w") l = Entry(self.top, width=60, borderwidth=0) l.insert(0, svalue) l.grid(row=row, column=1, sticky="w") row = row+1 return row