mirror of
				https://github.com/python/cpython.git
				synced 2025-10-30 21:21:22 +00:00 
			
		
		
		
	
		
			
	
	
		
			39 lines
		
	
	
	
		
			1.3 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
		
		
			
		
	
	
			39 lines
		
	
	
	
		
			1.3 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
|   | 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 |