我是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
我已经尝试将我的输入传递到我的函数中,但这不起作用。
答案 0 :(得分:4)
有一个名为input的内置函数,尽量不要将它用作变量名。除此之外,它非常简单,
您为StringVar()
分配了自己选择的Variable Class(Entry
),然后随时使用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()
编辑:顺便提一下,下次发帖时,请考虑添加完整的追溯或出错的地方(你的期望是什么,你得到了什么等等)而不是说"它不起作用"只要。有了这个,你可能会得到更多精确答案的帮助。