1
from Tkinter import *

root = Tk()

Austria = StringVar()
label = Label(root, textvariable = Austria)

Austria.set("Austria")
label.pack(side = LEFT)

Cap_Austria = Entry(root)
Cap_Austria.pack(side = RIGHT)

root.mainloop()

我正在做一个欧盟测验,但这次它是图形的。我想让输入框中的条目成为变量,以便我可以按照以下方式执行操作:

if entry_string_austria == Vienna:
   #It's correct

我在以下站点研究了 get() 函数,但我不了解大部分文档。

http://mail.python.org/pipermail/tkinter-discuss/2008-June/001447.html http://effbot.org/tkinterbook/text.htm

另一个非常相似但我仍然不明白的stackoverflow问题

http://mail.python.org/pipermail/tutor/2005-February/035669.html http://bytes.com/topic/python/answers/761497-using-get-entry-tkinter

4

1 回答 1

2

你是对的get()

这种情况下的语法是

City = Cap_Austria.get()

if City == 'Vienna':
    #do stuff

您可以制作默认文本:

Cap_Austria.insert(0,  'default text')

甚至遵循这个模板:

class EntryTemplate(Entry):
    def __init__(self, master, status):
        Entry.__init__(self, master)
        Entry.insert(self, 0, status)
        Entry.bind(self, "<FocusIn>", lambda event: self.clickOnEntry(event, status))
        Entry.bind(self, "<FocusOut>", lambda event: self.clickOffEntry(event, status))


    def clickOnEntry(self, event, defaultText):
        if self.get() == defaultText:
            self.delete(0, END)

    def clickOffEntry(self, event, defaultText):
        if len(self.get()) == 0:
            Entry.insert(self, 0, defaultText)

你会这样使用:

Cap_Austria = EntryTemplate(root, 'default text')
Cap_Austria.pack(side = RIGHT)

City = Cap_Austria.get()

为了使它不仅有一个默认文本,而且如果你点击它,它就会消失,如果你在没有输入任何内容的情况下点击它就会回来。祝你好运!

于 2013-08-02T13:07:12.780 回答