mirror of
				https://github.com/python/cpython.git
				synced 2025-11-03 23:21:29 +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
							 |