来自函数的tkinter入口变量

时间:2015-05-06 04:59:10

标签: python tkinter global tkinter-entry

这应该很容易,但我正在为我需要的答案而烦恼。下面的代码弹出一个输入窗口。我在输入字段中输入,函数show_entry_fields()获取输入并关闭窗口。然后我想在后面的代码中使用新的入口变量,但是它们会恢复到它们的初始全局值。我将它们定义为全局,因此我可以在整个脚本中使用它们,但是入口函数无法更改它们。如何从用户那里获得可用于程序其余部分的输入?

import tkinter as tk

site = 'cats'
score = 100

def show_entry_fields():
    site = e1.get()
    score = e2.get()
    master.destroy()
    #print(site,score)


master = tk.Tk()
master.columnconfigure(1, weight=1)
tk.Label(master, text="website").grid(row=0)
tk.Label(master, text="Image Ranking").grid(row=1)

e1 = tk.Entry(master)
e2 = tk.Entry(master)

e1.insert(0,site)

e1.grid(row=0, column=1, sticky='EW')
e2.grid(row=1, column=1, sticky='EW')

tk.Button(master, text='Quit', command=master.quit).grid(row=3,  column=0, sticky='W', pady=4)
tk.Button(master, text='Go!', command=show_entry_fields).grid(row=3, column=1, sticky='W', pady=4)
master.mainloop( )

print(site, score)

1 个答案:

答案 0 :(得分:0)

这是否解决了这个问题?

def show_entry_fields():
    global site, score, master
    site = e1.get()
    score = e2.get()
    master.destroy()

至少程序结束时的打印正在打印正确的答案。