在Python中关闭Tkinter输入框

1 投票
2 回答
4086 浏览
提问于 2025-04-18 04:01

我想做一个简单的弹出框,让用户输入一些文字,然后点击提交(一个按钮)。用户点击提交后,我希望这个弹出框能关闭,然后继续执行后面的代码。下面是我从一个旧帖子借来的示例代码:

from Tkinter import *

root = Tk()
nameLabel = Label(root, text="Name")
ent = Entry(root, bd=5)

def getName():
    print ent.get()

submit = Button(root, text ="Submit", command = getName)

nameLabel.pack()
ent.pack()

submit.pack(side = BOTTOM) 
root.mainloop()

print "Rest of the code goes here" 

我对Tkinter不太熟悉,所以不太确定在用户点击“提交”后,应该在哪里以及如何调用合适的函数来关闭输入框。我猜这个函数应该放在getName()函数里面吧?

2 个回答

0

另一种方法:


因为你的弹出窗口内容不多,所以你可以减少一些代码行,这样可以节省一些处理器的资源,并且得到几乎相同的效果,代码可以写成这样:

submitvariablename=raw_input('Please enter a Name')

这样做功能一样,而且运行得更快、更简洁。

只是个建议。

3

如果我理解得没错,你只需要在getName函数的最后调用根窗口的destroy方法:

def getName():
    print ent.get()
    root.destroy()

这样做就相当于手动点击窗口角落的X按钮。

撰写回答