2017-08-15 59 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方法的結果賦值爲一個正常的整數。 –

相關問題