Tkinter ".get()" hatası

Merhaba. Tkinter ile pencere arasında geçiş yapmak istiyorum .geçiş oluyor fakat ikinci penceredeki entry kısmını yukarıya .get() yaptığımda hata alıyorum yardımcı olabilir misiniz?

Merhaba, hoş geldiniz.

Kodu görmeden sadece anlattıklarınızdan yola çıkarak neden hata aldığınızı anlayamayız. Yardım alabilmek için hata aldığınız kodu mümkünse sadeleştirilmiş olarak paylaşmanız gerekiyor. Ayrıca hata çıktısını da paylaşmak sorunun daha hızlı çözülmesini sağlayabilir.

Kodu aşağıda gösterildiği gibi paylaşın lütfen:

```
kod bu çentiklerin arasına yazılmalı.
```
2 Beğeni

Entry’ye textvariable atamamışsınız. Hata o yüzden olmuştur yanlış bilmiyorsam.

name=StringVar()
isim=Entry(pencere,textvariable=name)

şifreyi de bu şekilde güncelleyin sonra:

name.get()

bu şekilde entryden yazıları çekebilirsiniz.

Bir fonksiyonda tanımladığınız local bir değişkeni, başka bir fonksiyonda sanki o değişken global bir değişkenmiş gibi kullanmışsınız. Böyle bir durumda NameError hatası alırsınız. Yani bir fonksiyon içerisinde tanımlanan bir local değişken o fonksiyonun dışında tanımsızdır. Bir fonksiyonda tanımlanmış bir değişkeni, başka bir fonksiyona aktarmak için, değişkenin aktarılacağı fonksiyon bir parametre ile bu değişkeni almalı.

pencere2'de yer alan hesisk düğmesine tıklandığı zaman, aynı fonksiyonda tanımlanmış olan fıyat, ıskonto ve sonucGoster değişkenlerini, hesapla isimli bir fonksiyonda kullanmaya çalışıyorsunuz. Ama hesapla fonksiyonunun içinde bu değişkenler tanımsız oldukları için hata alıyorsunuz.

O halde yapmanız gereken şu:

  1. hesisk düğmesinin yapacağı işlemi, sonucGoster isimli değişkenden sonra tanımlayın. Ve komutu tanımlarken de hesapla fonksiyonunda kullanılacak widgetleri, fonksiyona parametre olarak yazın.
    sonucGoster=Label(pencere2)
    sonucGoster.config(text="Henüz hesaplanmadı",fg="black",bg="light grey",font="None 8")
    sonucGoster.grid(row=3,column=1,sticky=W)
    hesisk["command"] = lambda: hesapla(fıyat, ıskonto, sonucGoster)
  1. hesapla fonksiyonunu tanımlarken parametre alacak şekilde tanımlayın.
def hesapla(fıyat, ıskonto, sonucGoster):

Ayrıca hesapla fonksiyonunun son satırında bir str nesnesi ile bir int nesnesini toplamaya çalışıyorsunuz. str nesnesinin değeri "Sonuç:", int nesnesinin değeri de hesaplama sonucunda oluşuyor ve ismi sonuç olarak yazılmış. Eğer str nesnelerini birleştirecekseniz (concatenation), tipi int olan nesneyi str'ye çevirmeniz gerekir.

Yani:

    sonucGoster.config(text="Sonuç :" + str(sonuç), fg="black",bg="light grey",font="None 8")
1 Beğeni

Teşekkür ederim. :+1: