Arhn - архитектура программирования

Python Tkinter Entry сохраняет переменные на потом

я новичок в 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()
15.08.2017

  • Не забудьте включить операторы импорта, чтобы сделать ваш код работоспособным. Это особенно важно для tkinter, так как указывает, какую версию Python вы используете, если вы не указываете это явно. 16.08.2017

Ответы:


1

Вот пример использования 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 (как, кажется, все еще делают многие новички), преобразование кода остается в качестве упражнения.

16.08.2017
  • Здравствуйте, чтобы попытаться закрыть вопрос, мне нужно целое число вместо переменной. Мне также нужно иметь возможность вызывать переменные позже в программе, вне цикла. Спасибо за вашу помощь. 16.08.2017
  • Я обновил его, чтобы использовать IntVar вместо StringVar, и переменная остается действительной после выхода из цикла. Вы можете присвоить результат метода get, чтобы получить его как обычное целое число. 16.08.2017
  • Новые материалы

    Коллекции публикаций по глубокому обучению
    Последние пару месяцев я создавал коллекции последних академических публикаций по различным подполям глубокого обучения в моем блоге https://amundtveit.com - эта публикация дает обзор 25..

    Представляем: Pepita
    Фреймворк JavaScript с открытым исходным кодом Я знаю, что недостатка в фреймворках JavaScript нет. Но я просто не мог остановиться. Я хотел написать что-то сам, со своими собственными..

    Советы по коду Laravel #2
    1-) Найти // You can specify the columns you need // in when you use the find method on a model User::find(‘id’, [‘email’,’name’]); // You can increment or decrement // a field in..

    Работа с временными рядами спутниковых изображений, часть 3 (аналитика данных)
    Анализ временных рядов спутниковых изображений для данных наблюдений за большой Землей (arXiv) Автор: Рольф Симоэс , Жильберто Камара , Жильберто Кейрос , Фелипе Соуза , Педро Р. Андраде ,..

    3 способа решить квадратное уравнение (3-й мой любимый) -
    1. Методом факторизации — 2. Используя квадратичную формулу — 3. Заполнив квадрат — Давайте поймем это, решив это простое уравнение: Мы пытаемся сделать LHS,..

    Создание VR-миров с A-Frame
    Виртуальная реальность (и дополненная реальность) стали главными модными терминами в образовательных технологиях. С недорогими VR-гарнитурами, такими как Google Cardboard , и использованием..

    Демистификация рекурсии
    КОДЕКС Демистификация рекурсии Упрощенная концепция ошеломляющей О чем весь этот шум? Рекурсия, кажется, единственная тема, от которой у каждого начинающего студента-информатика..