在下一个函数中将TKinter输入存储到字符串变量中?

时间:2014-10-16 22:20:38

标签: python tkinter

我是TKinter的新手,我无法弄清楚如何在TKINTER中存储文本框中的输入。我已经尝试过几乎每个教程,并查看类似的帖子,但他们的想法不解决我的问题:/。

def cityInfoWindow(self, flightMap):
    infoWindow = Tk()
    infoWindow.geometry("500x500+100+100")
    infoWindow.title("CSAir-City Information")
    global input 
    input = StringVar()
    cityEntry = Entry(infoWindow,textvariable = input).pack()           
    okButton = Button(infoWindow, text = 'Submit', command = lambda:self.getCityInfo(infoWindow, input)).pack()

def getCityInfo(self, infoWindow, input):
    content = input.get()
    print content
    return

我已经尝试将我的输入传递到我的函数中,但这不起作用。

1 个答案:

答案 0 :(得分:4)

有一个名为input的内置函数,尽量不要将它用作变量名。除此之外,它非常简单,

您为StringVar()分配了自己选择的Variable ClassEntry),然后随时使用get()方法获取所述变量的内容。

还有一个get()方法用于输入。这样,您就可以在不使用StringVar的情况下获取Entry的内容。

下面是一个显示如何操作的简单示例。您应该自己将它实现到您的代码中。

import tkinter as tk

def get_class():  #no need to pass arguments to functions in both cases
    print (var.get())

def get_entry(): 
    print (ent.get())


root = tk.Tk()

var = tk.StringVar()

ent = tk.Entry(root,textvariable = var)
btn1 = tk.Button(root, text="Variable Class", command=get_class)
btn2 = tk.Button(root, text="Get Method", command=get_entry)

ent.pack()
btn1.pack()
btn2.pack()

root.mainloop()

编辑:顺便提一下,下次发帖时,请考虑添加完整的追溯或出错的地方(你的期望是什么,你得到了什么等等)而不是说"它不起作用"只要。有了这个,你可能会得到更多精确答案的帮助。