Python Tkinter条目稍后存储变量
问题描述:
我对Tkinter很新颖,但是我怎样才能得到我输入的所有条目命令以作为以后保存的变量?这是我的代码,该条目存在。该程序旨在跟踪进度,并使用整数,而不是浮点数。谢谢Python Tkinter条目稍后存储变量
然后它使用存储的变量供将来用于其他组件,其中的作品。
name = Tk()
name.wm_title("Name")
Label(name, text=" First").grid(row=0, column=0)
Label(name, text=" Last").grid(row=0, column=2)
Label(name, text=" Starting height").grid(row=1, column=0)
Label(name, text=" Now height").grid(row=1, column=2)
Label(name, text=" Starting Age").grid(row=2, column=0)
Label(name, text=" Now Age").grid(row=2, column=2)
Label(name, text=" Starting Bench Press").grid(row=3, column=0)
Label(name, text=" Personal best Bench press").grid(row=3, column=2)
Label(name, text=" Starting Weighted Squat").grid(row=4, column=0)
Label(name, text="Personal best weighted squat").grid(row=4, column=2)
Label(name, text=" Starting deadlift").grid(row=5, column=0)
Label(name, text=" Personal best deadlift").grid(row=5, column=2)
Label(name, text=" Starting shoulder press").grid(row=6, column=0)
Label(name, text="Personal best shoulder press").grid(row=6, column=2)
Label(name, text=" Starting leg press").grid(row=7, column=0)
Label(name, text=" Personal best leg press").grid(row=7, column=2)
Label(name, text=" Starting lat pulldown").grid(row=8, column=0)
Label(name, text=" Personal best lat pulldown").grid(row=8, column=2)
first = Entry(name)
last = Entry(name)
starting_height = Entry(name)
Now_height = Entry(name)
Start_age = Entry(name)
Now_age = Entry(name)
Start_Bench_Press = Entry(name)
Heaviest_Bench_Press = Entry(name)
Start_Weight_Squat = Entry(name)
Heaviest_Weight_Squat = Entry(name)
Start_deadlift = Entry(name)
Heaviest_deadlift = Entry(name)
Start_Shoulder_Press = Entry(name)
Heaviest_Shoulder_Press = Entry(name)
Start_Leg_Press = Entry(name)
Heaviest_Leg_Press = Entry(name)
Start_Lat_Pulldown = Entry(name)
Heaviest_Lat_Pulldown = Entry(name)
first.grid (row=0, column=1)
last.grid (row=0, column=3)
Starting_height.grid (row=1, column=1)
Now_height.grid (row=1, column=3)
Start_age.grid (row=2, column=1)
Now_age.grid (row=2, column=3)
Start_Bench_Press.grid (row=3, column=1)
Heaviest_Bench_Press.grid (row=3, column=3)
Start_Weight_Squat.grid (row=4, column=1)
Heaviest_Weight_Squat.grid (row=4, column=3)
Start_deadlift.grid (row=5, column=1)
Heaviest_deadlift.grid (row=5, column=3)
Start_Shoulder_Press.grid (row=6, column=1)
Heaviest_Shoulder_Press.grid (row=6, column=3)
Start_Leg_Press.grid (row=7, column=1)
Heaviest_Leg_Press.grid (row=7, column=3)
Start_Lat_Pulldown.grid (row=8, column=1)
Heaviest_Lat_Pulldown.grid (row=8, column=3)
Button(name, text='Quit', command=name.destroy).grid(row=10, column=0, sticky=W, pady=4)
name.mainloop()
答
下面是使用IntVar
保存从Entry
插件的值的一个例子。
from tkinter import *
from tkinter import messagebox
name = Tk()
name.wm_title("Name")
Label(name, text="sFirst").grid(row=0, column=0)
firstsv = IntVar()
first = Entry(name, textvariable=firstsv)
first.grid(row=0, column=1)
b1 = Button(name, text='Show', command=lambda: messagebox.showinfo("hi", firstsv.get()))
b1.grid(row=1, column=0, sticky=W, pady=4)
name.mainloop()
# use after loop
print('firstsv = %d' % firstsv.get())
这是python 3的代码。如果您使用的是Python 2(因为许多初学者似乎还在做),它只是一个练习来转换代码。
+0
您好,为了尝试和关闭这个问题,我需要一个整数而不是一个变量。我还需要能够在程序的后面调用变量,而不是在循环之外。谢谢你的帮助。 –
+0
我将它更新为使用'IntVar'而不是'StringVar',并且该循环退出后该变量保持有效。您可以将get方法的结果赋值为一个正常的整数。 –
不要忘记包含导入语句以使您的代码可以运行。这对'tkinter'尤其重要,因为它表明你使用的是哪个python版本,如果你没有明确说明的话。 –