home *** CD-ROM | disk | FTP | other *** search
/ PC World 2001 April / PCWorld_2001-04_cd.bin / Software / TemaCD / webclean / !!!python!!! / BeOpen-Python-2.0.exe / FRAMEVIEWER.PY < prev    next >
Encoding:
Python Source  |  2000-09-28  |  1.3 KB  |  39 lines

  1. from repr import Repr
  2. from Tkinter import *
  3.  
  4. class FrameViewer:
  5.  
  6.     def __init__(self, root, frame):
  7.         self.root = root
  8.         self.frame = frame
  9.         self.top = Toplevel(self.root)
  10.         self.repr = Repr()
  11.         self.repr.maxstring = 60
  12.         self.load_variables()
  13.  
  14.     def load_variables(self):
  15.         row = 0
  16.         if self.frame.f_locals is not self.frame.f_globals:
  17.             l = Label(self.top, text="Local Variables",
  18.                       borderwidth=2, relief="raised")
  19.             l.grid(row=row, column=0, columnspan=2, sticky="ew")
  20.             row = self.load_names(self.frame.f_locals, row+1)
  21.         l = Label(self.top, text="Global Variables",
  22.                   borderwidth=2, relief="raised")
  23.         l.grid(row=row, column=0, columnspan=2, sticky="ew")
  24.         row = self.load_names(self.frame.f_globals, row+1)
  25.  
  26.     def load_names(self, dict, row):
  27.         names = dict.keys()
  28.         names.sort()
  29.         for name in names:
  30.             value = dict[name]
  31.             svalue = self.repr.repr(value)
  32.             l = Label(self.top, text=name)
  33.             l.grid(row=row, column=0, sticky="w")
  34.             l = Entry(self.top, width=60, borderwidth=0)
  35.             l.insert(0, svalue)
  36.             l.grid(row=row, column=1, sticky="w")
  37.             row = row+1
  38.         return row
  39.