mirror of
				https://github.com/python/cpython.git
				synced 2025-10-30 21:21:22 +00:00 
			
		
		
		
	
		
			
	
	
		
			48 lines
		
	
	
	
		
			1.5 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
		
		
			
		
	
	
			48 lines
		
	
	
	
		
			1.5 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
|   | from Tkinter import * | ||
|  | import string  | ||
|  | 
 | ||
|  | # This program  shows how to make a typein box shadow a program variable. | ||
|  | 
 | ||
|  | class App(Frame): | ||
|  |     def __init__(self, master=None): | ||
|  | 	Frame.__init__(self, master) | ||
|  | 	self.pack() | ||
|  | 
 | ||
|  | 	self.entrythingy = Entry() | ||
|  | 	self.entrythingy.pack() | ||
|  | 
 | ||
|  | 	self.button = Button(self, {"text" : "Uppercase The Entry", "command" : self.upper}) | ||
|  | 	self.button.pack() | ||
|  | 
 | ||
|  | 	 | ||
|  | 	# here we have the text in the entry widget tied to a variable. | ||
|  | 	# changes in the variable are echoed in the widget and vice versa.  | ||
|  | 	# Very handy. | ||
|  | 	# there are other Variable types. See Tkinter.py for all | ||
|  | 	# the other variable types that can be shadowed | ||
|  | 	self.contents = StringVar() | ||
|  | 	self.contents.set("this is a variable") | ||
|  | 	self.entrythingy.config({"textvariable":self.contents}) | ||
|  | 
 | ||
|  | 	# and here we get a callback when the user hits return. we could | ||
|  | 	# make the key that triggers the callback anything we wanted to. | ||
|  | 	# other typical options might be <Key-Tab> or <Key> (for anything) | ||
|  | 	self.entrythingy.bind('<Key-Return>', self.print_contents) | ||
|  | 
 | ||
|  |     def upper(self): | ||
|  | 	# notice here, we don't actually refer to the entry box. | ||
|  | 	# we just operate on the string variable and we  | ||
|  |         # because it's being looked at by the entry widget, changing | ||
|  | 	# the variable changes the entry widget display automatically. | ||
|  | 	# the strange get/set operators are clunky, true... | ||
|  | 	str = string.upper(self.contents.get()) | ||
|  | 	self.contents.set(str) | ||
|  | 
 | ||
|  |     def print_contents(self, event): | ||
|  | 	print "hi. contents of entry is now ---->", self.contents.get() | ||
|  | 
 | ||
|  | root = App() | ||
|  | root.master.title("Foo") | ||
|  | root.mainloop() | ||
|  | 
 |