1 | from Tkinter import *
|
---|
2 | import string
|
---|
3 |
|
---|
4 | # This program shows how to make a typein box shadow a program variable.
|
---|
5 |
|
---|
6 | class App(Frame):
|
---|
7 | def __init__(self, master=None):
|
---|
8 | Frame.__init__(self, master)
|
---|
9 | self.pack()
|
---|
10 |
|
---|
11 | self.entrythingy = Entry(self)
|
---|
12 | self.entrythingy.pack()
|
---|
13 |
|
---|
14 | self.button = Button(self, text="Uppercase The Entry",
|
---|
15 | command=self.upper)
|
---|
16 | self.button.pack()
|
---|
17 |
|
---|
18 | # here we have the text in the entry widget tied to a variable.
|
---|
19 | # changes in the variable are echoed in the widget and vice versa.
|
---|
20 | # Very handy.
|
---|
21 | # there are other Variable types. See Tkinter.py for all
|
---|
22 | # the other variable types that can be shadowed
|
---|
23 | self.contents = StringVar()
|
---|
24 | self.contents.set("this is a variable")
|
---|
25 | self.entrythingy.config(textvariable=self.contents)
|
---|
26 |
|
---|
27 | # and here we get a callback when the user hits return. we could
|
---|
28 | # make the key that triggers the callback anything we wanted to.
|
---|
29 | # other typical options might be <Key-Tab> or <Key> (for anything)
|
---|
30 | self.entrythingy.bind('<Key-Return>', self.print_contents)
|
---|
31 |
|
---|
32 | def upper(self):
|
---|
33 | # notice here, we don't actually refer to the entry box.
|
---|
34 | # we just operate on the string variable and we
|
---|
35 | # because it's being looked at by the entry widget, changing
|
---|
36 | # the variable changes the entry widget display automatically.
|
---|
37 | # the strange get/set operators are clunky, true...
|
---|
38 | str = string.upper(self.contents.get())
|
---|
39 | self.contents.set(str)
|
---|
40 |
|
---|
41 | def print_contents(self, event):
|
---|
42 | print "hi. contents of entry is now ---->", self.contents.get()
|
---|
43 |
|
---|
44 | root = App()
|
---|
45 | root.master.title("Foo")
|
---|
46 | root.mainloop()
|
---|