2017-08-15 94 views
0

我对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() 
+0

不要忘记包含导入语句以使您的代码可以运行。这对'tkinter'尤其重要,因为它表明你使用的是哪个python版本,如果你没有明确说明的话。 –

回答

0

下面是使用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方法的结果赋值为一个正常的整数。 –