如何在窗口关闭后从Python Tkinter条目中获取文本?

0 投票
1 回答
1131 浏览
提问于 2025-04-18 18:43

我有一个脚本,想让它弹出一个对话框给用户。当用户输入文本后,窗口会关闭,脚本可以获取用户输入的文本并继续执行。

但我在获取文本时遇到了问题,获取到的总是空的。我是根据这个链接的代码写的:在root.destroy()后获取Entry的值

我该如何获取文本呢?

#2.7
from Tkinter import *

class GetUserInput(Frame):

    def __init__(self, master=None):
        Frame.__init__(self, master)
        self.pathVar = StringVar()
        self.path = Entry(master, bd =5)
        self.path.bind('<Return>', self.callback)
        self.path.pack(side = RIGHT)

        L1 = Label(master, text="Enter value")
        L1.pack( side = LEFT)


    def callback(*args):
        value = args[0].pathVar.get()
        print value
        args[0].master.destroy()

    def close(self):
        self.master.destroy()

if __name__ == '__main__':
    root = Tk()
    app = GetUserInput(master=root)
    app.mainloop()
    print(app.pathVar.get())

1 个回答

2
self.path = Entry(master, bd =5)
self.path = Entry(master, bd =5, textvariable=self.pathVar)

试着在这里指定一下 textvariable 这个参数。这样可以确保 StringVar 会跟着 Entry 的值实时更新。

撰写回答