Как обновить виджет Label при нажатии на кнопку?
Каждый раз когда нажимаю на кнопку появляется новый виджет. Дело в том, что я хочу чтобы виджет обновлялся а не создавался новый. Как это сделать? Вот мой код:
from tkinter import *
root = Tk()
root.title("Grading System")
group = LabelFrame(root, text="Enter your scores", padx=15, pady=15)
Label(group, text="Mid-term: ").grid(row=0)
Label(group, text="Final-term: ").grid(row=1)
Label(group, text="Attendance: ").grid(row=2)
Label(group, text="Assignment: ").grid(row=3)
Label(group, text="Quiz: ").grid(row=4)
Label(group, text="Discussion: ").grid(row=5)
Label(group, text="ETC: ").grid(row=6)
mid = Entry(group)
fin = Entry(group)
att = Entry(group)
assig = Entry(group)
quiz = Entry(group)
disc = Entry(group)
etc = Entry(group)
entryList = [mid, fin, att, assig, quiz, disc, etc]
n = 0
for i in entryList:
i.grid(row=n, column=1)
n += 1
class Lecture:
def __init__(self, mid, fin, att, assig, quiz, disc, etc):
self.mid = float(mid.get())
self.fin = float(fin.get())
self.att = float(att.get())
self.assig = float(assig.get())
self.quiz = float(quiz.get())
self.disc = float(disc.get())
self.etc = float(etc.get())
def grading_system(self):
mid = (self.mid / 100) * 15
fin = (self.fin / 100) * 15
att = (self.att / 100) * 20
assig = (self.assig / 100) * 40
quiz = (self.quiz / 100) * 10
disc = (self.disc / 100) * 0
etc = (self.etc / 100) * 0
total = mid + fin + att + assig + quiz + disc + etc
result = Label(root, text=f"Your overall score is {total}", borderwidth=3, relief="ridge")
result.pack()
def start():
global student
student = Lecture(mid, fin, att, assig, quiz, disc, etc)
student.grading_system()
myButton = Button(root, text="Calculate", command=start)
myButton.pack(side=RIGHT, padx=10, pady=10)
group.pack(padx=15, pady=15)
root.mainloop()
