Parametre olarak çektiğin değeri vereceksin. Yani “Python” yazan yere çektiğin verinin tutulduğu değişkeni bıracaksın, eğer tek değerse. Dizi ise de döngü içerisinde elemanları tek tek bırakabilirsin. Tabi bu dediklerim temel python bilgisi. Eğer temeli bilmeden tkinter ile ilgileniyosan zorlanabilirsin.
i = 1
for x in veriyicek:
print(x["sinifadin"])
liste = Listbox()
# şu kısma insert uygulayacaksın
liste.insert(i, x["sinifadin"])
i = i + 1
liste.grid(row=1, column=2)
Burada döngü her döndüğünde sıfırdan bir Listbox oluşturup liste’ye atanıyor, eski değerler kayboluyor. Dolayısıyla yalnız en sondaki veri oraya konmuş gibi oluyor. Bu satırı döngü dışına alıp deneyebilirsiniz, öylelikle tek bir Listbox olur istenen veriler ona insert edilir.
liste = Listbox()
def sinifYonetimi():
veriyicek = siniflar.find().sort("sinifinadi")
i = 1
for x in veriyicek:
print(x["sinifadin"])
# şu kısma insert uygulayacaksın
liste.insert(i, x["sinifadin"])
i = i + 1
liste.grid(row=1, column=2)
Bende bir tane çıkıyor şu kodla, belki başka birisi yardımcı olabilir.
from tkinter import *
top = Tk()
liste = Listbox()
def sinifYonetimi():
veriler = ["dsa", "w", "32"]
i = 1
for veri in veriler:
liste.insert(i, veri)
i = i + 1
liste.grid(row=1, column=2)
sinifYonetimi()
top.mainloop()
Ben butona command ekledim. Bu command ise sinifYonetimi çalıştırıyor. def sinifYonetimi yani. onun içinde ise bu insert kodları var. O yüzden sürekli yeniden insertliyor.
Kodları şöyle bırakayım:
liste = Listbox()
def sinifYonetimi():
sinifyonetimiaciklama = Label(fg="white", bg="#202020")
veriyicek = siniflar.find().sort("sinifinadi")
i = 1
for x in veriyicek:
print(x["sinifadin"])
# şu kısma insert uygulayacaksın
liste.insert(i, x["sinifadin"])
i = i + 1
liste.grid(row=2, column=2)
menubuton2 = Button(text="Sınıf Yönetimi", fg="white", bg="#282528", height=4,
command=sinifYonetimi)
Bunu fonksiyonun içine alırsanız her bastığınızda tekrar baştan doldurulur, bu uygunsa yapabilirsiniz.
Bir diğer yol da fonksiyonun içinde liste.size()'a bakıp halihazırda doluysa insert etmemek olabilir. Bunu if ile yapabilirsiniz, fonksiyonu anında terk etmek için ise istediğiniz yere return yazabilirsiniz.