简体   繁体   English

Python Tkinter Entry存储变量供以后使用

[英]Python Tkinter Entry storing variables for later

i am pretty new to Tkinter, but how can i get what i entered for all of the Entry commands to save as a variable for later? 我对Tkinter相当陌生,但是如何获取所有Entry命令输入的内容并保存为变量供以后使用? Here is my code that the Entry exists. 这是条目存在的我的代码。 This program is designed to track progress, and work with integers, not floating points. 该程序旨在跟踪进度,并使用整数而不是浮点数。 Thanks 谢谢

It then uses the variables stored for later use for other components, of which works. 然后,它将存储的变量用于以后可用于其他组件的其他组件。

  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()

Here is an example of using IntVar to save the value from an Entry widget. 这是一个使用IntVarEntry小部件保存值的示例。

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())

This is python 3 code. 这是python 3代码。 If you are using python 2 (as many beginners seem to be still be doing), it's left as an exercise to convert the code. 如果您使用的是python 2(许多初学者似乎仍在这样做),则将其作为转换代码的练习。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM