| 
									
										
										
										
											1994-10-07 09:55:26 +00:00
										 |  |  | 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() | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											1996-11-27 19:47:42 +00:00
										 |  |  | 	self.entrythingy = Entry(self) | 
					
						
							| 
									
										
										
										
											1994-10-07 09:55:26 +00:00
										 |  |  | 	self.entrythingy.pack() | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											1996-07-30 18:57:18 +00:00
										 |  |  | 	self.button = Button(self, text="Uppercase The Entry", | 
					
						
							|  |  |  | 			     command=self.upper) | 
					
						
							| 
									
										
										
										
											1994-10-07 09:55:26 +00:00
										 |  |  | 	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") | 
					
						
							| 
									
										
										
										
											1996-07-30 18:57:18 +00:00
										 |  |  | 	self.entrythingy.config(textvariable=self.contents) | 
					
						
							| 
									
										
										
										
											1994-10-07 09:55:26 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  | 	# 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() | 
					
						
							|  |  |  | 
 |