Tkinter GUI önceki yazıyı temizleme

Kodu yazarken hatalı düşünmüşsünüz. Fonksiyonda sürekli yeni Label yaratmak yerine var olan bir Label'i düzenlemeniz en mantıklısı olur. Şu anda bahsettiğiniz sorun, yeni Label'ların eskilerinin üstüne binmesi. Kodu bu şekilde yazdığınız takdirde sürekli yeni Label oluşturulduğu ve yeni eklenen Label'lar silinmediği için siz tuşa her tıkladığınızda gereksiz bir bellek harcaması yapacaksınız ve harcanan gereksiz bellek program kapanana kadar temizlenmeyecek. Düzenlenmiş kodu aşağıda atıyorum. Sorunuz olursa sormaktan çekinmeyin lütfen.

Python:
from tkinter import *
from math import*

window = Tk()
window.title("Yadyo Final Deneme- v0.1")
window.geometry("600x300")


Sl1=Label(window, text="İlk döneme ait not ortalaması ")
Sl1.place(x=20,y=50)
Se1 =Entry(window,bd=2)
Se1.place(x=200,y=50)

Sl2 = Label(window, text="İkinci döneme ait not ortalaması ")
Sl2.place(x=20,y=100)
Se2 =Entry(window,bd=2)
Se2.place(x=200,y=100)

ort =Label(window,text= "Not ortalamanız: " )
ort.place(x=20,y=150)

ortalama= Label()
ortalama.place(x=120,y=150)

fnlnt =Label(window, text="Final sınavından almanız gereken not:")
fnlnt.place(x=20,y=200)

fnotu= Label()
fnotu.place(x=230,y=200)

def Hesapla():
    s1=int(Se1.get())
    s2=int(Se2.get())
    sort=(s1+s2)/2


    gnot=((70-sort*0.6))/0.4

    if sort<60:
        gnot = "Sınava girmeye hak kazanamadınız!"
    elif sort>=85:
        gnot = "Sınıfı başarıyla geçtiniz, sınava girmenize gerek yok!"
    else:
        gnot=ceil(gnot)

    ortalama.config(text=sort)
    fnotu.config(text=gnot)


buton = Button(text = "Hesapla", command=Hesapla)
buton.place(x=400,y=75)


window.mainloop()
 

Geri
Yukarı