cpython/Demo/tkinter/matt/entry-with-shared-variable.py

48 lines
1.5 KiB
Python
Raw Normal View History

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()
self.entrythingy = Entry()
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()