Python Tkinter ile kullanıcı verilerini başka bir yerde kullanmak istiyorum

Aslında yaklaşmışsınız, bir-iki değişiklik yeter gibi:

list = []

  • Değişkenlerin isimlerini Python’daki halihazırda bulunan, rezerve edilmiş kelimelerden seçmemeye gayret etmek gerekir zira aksi takdirde Python’dakini “gölgelemiş” oluyoruz. Burada list diye bir değişken yazdığınızda Python’daki list artık fonksiyonunu kaybediyor ve sizin tanımladığınız listeye indirgeniyor. Bu, programın yanlış çalışmasına sebep olmayabilir ama “best practice” uğruna bundan kaçınmak gerekir. Mesela olur da Python’daki list’e işiniz düşerse, program hata verebilir. (Zaten editörünüz de list’i farklı renkle gösteriyordur belki, oradan da anlaşılabilir). Velhasıl, liste = [] tercih edilebilir.

list.append(Entry(root,name=str(i),width=3).pack())

  • Burada listeye eklediğiniz eleman neredeyse doğru; ama Tkinter ile geçmişi olan hatırısayılır sayıda kişinin şöyle ya da böyle düştüğü bir hata olan, AttributeError: ‘NoneType’ object has no attribute ‘get’ mesajına da gebe olan, Tkinter widget’ının tanımlanması ile yerleştirilmesi olaylarının bir çırpıda yapılmasını görüyoruz. Listenin içindekileri yazdırırsanız for döngüsünden sonra, [None, None] görürsünüz. Sebebine linkteki konudan ulaşırsınız (orada grid burada pack; temel mevzu aynı) ve şöyle düzeltirsiniz:
for i in range(2):
    bir_entry = Entry(root, name=str(i), width=3)
    bir_entry.pack()
    liste.append(bir_entry)

listveri = list.get()

  • Burada demek istediğiniz “şu listeye koyduğum Entry’lerin içerisindekileri tek tek al”; ama bunu direkt liste üzerinden yapmamız na-mümkün. Bir şekilde tek tek listenin elemanlarını dolaşmalıyız, for döngüsü bir yoldur:
for entry in liste:
    entry_nin_verisi = entry.get()
    print(entry_nin_verisi)

(list.append(Entry(root,name=str(i),width=3).pack()) olduğu gibi kalsaydı, bu adımda linkteki hatayı alırdık).