symbian-qemu-0.9.1-12/python-2.6.1/Demo/tkinter/matt/entry-with-shared-variable.py
changeset 1 2fb8b9db1c86
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/symbian-qemu-0.9.1-12/python-2.6.1/Demo/tkinter/matt/entry-with-shared-variable.py	Fri Jul 31 15:01:17 2009 +0100
@@ -0,0 +1,46 @@
+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)
+        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()