Ders-5.1: Tkinter Entry Bilgi Alma

Tkinter Entry Bilgi Alma

Tkinter Entry Bilgi Alma – Temel python derslerinde kullanıcıdan INPUT fonksiyonu ile bilgi alınabileceğini görmüştük. Yaptığımız programların kullanıcı ile etkileşime girmesi son derece önemlidir. Tkinter GUI programlama da Entry araçları ile bu etkileşime girerek kullanıcıdan bilgi isteyebiliriz.

Entry.get İle Bilgi Alma:

import tkinter as tk

pencere=tk.Tk()
pencere.title("Buton İşlemleri")
pencere.geometry("500x500")

def butonBas():

    #entry den bilgileri alma
    adsoyad=ent1.get()
    print(adsoyad)

e1=tk.Label(text="Adı Soyadı",font="Arial 12 bold")
e1.pack()
ent1=tk.Entry(width=30)
ent1.pack()
b1=tk.Button(text="GİRİŞ",bg="black",fg="white",font="Arial 20 bold",command=butonBas)
b1.pack()

pencere.mainloop()

Yukarıdaki kodları incelediğimizde; Bir etiket, bir entry ve bir buton aracının eklendiğinin görüyoruz.

entry_ekleme_1_btogrenme
Tkinter Entry Bilgi Alma

Butona basıldığında command=butonBas parametresine verdiğimiz fonksiyona bizi program yönlendirecektir. Şimdi yukarıdaki butonBas fonksiyonunu inceleyelim.

def butonBas():

    #entry den bilgileri alma
    adsoyad=ent1.get()
    print(adsoyad)

ent1.get( ) ile kullanıcının entry ye girdiği değeri alırız ve adsoyad değişkenine atarız. Artık elimizde adsoyad isminde bir değişken var ve biz bunu istediğimiz yerde kullanabiliriz. Bu fonksiyonda bu değişkeni terminalde yazdırdım. Dikkat!!! pencerede yazdırmadım.

Şimdi ise entry den aldığımız bu değeri pencere üzerinde bir etikete yazdıralım.

import tkinter as tk

pencere=tk.Tk()
pencere.title("Buton İşlemleri")
pencere.geometry("500x500")

def butonBas():

    #entry den bilgileri alma
    adsoyad=ent1.get()
    e2.config(text=adsoyad)

e1=tk.Label(text="Adı Soyadı",font="Arial 12 bold")
e1.pack()
ent1=tk.Entry(width=30)
ent1.pack()
b1=tk.Button(text="GİRİŞ",bg="black",fg="white",font="Arial 20 bold",command=butonBas)
b1.pack()
e2=tk.Label(text="--------",font="Arial 12 bold")
e2.pack()

pencere.mainloop()

Yukarıdaki kodlara ek olarak e2 isimli bir label oluşturdum. Fonksiyon içerisinde ise e2.config (text=adsoyad) satırını yazarak e2 etiketinin içerisindeki text parametresinin değerini değiştirdim. Kullanıcı butona basıca penceredeki e2 etiketinde ad soyad bilgisi yazacak.

Tkinter Entry Bilgi Alma

Görüldüğü gibi entry ye yazdığımız bilgiyi e2 etiketine aktardık. Mutlaka dikkat etmişsinizdir. Butona bastıktan sonra entry nin içeriği silinmedi. Diğer başlığımızda ise entry deki bilgiyi silmeyi işleyeceğiz.

Entry deki Bilgiyi Silme:

import tkinter as tk

pencere=tk.Tk()
pencere.title("Buton İşlemleri")
pencere.geometry("500x500")

def butonBas():
    #entry den bilgileri alma
    adsoyad=ent1.get()
    no= ent2.get()
    sinif=ent3.get()

    print(adsoyad,no,sinif)
    #etiketlere e4,e5,e6 etiketlerine yazdırma...
    e4.config(text=adsoyad)
    e5.config(text=no)
    e6.config(text=sinif)

    #entry içerik silme
    ent1.delete(0,tk.END)
    ent2.delete(0,tk.END)
    ent3.delete(0,tk.END)

e1=tk.Label(text="Adı Soyadı",font="Arial 12 bold")
e1.pack()
ent1=tk.Entry(width=30)
ent1.pack()
e2=tk.Label(text="Numara",font="Arial 12 bold")
e2.pack()
ent2=tk.Entry(width=30)
ent2.pack()
e3=tk.Label(text="Sınıf",font="Arial 12 bold")
e3.pack()
ent3=tk.Entry(width=30)
ent3.pack()
b1=tk.Button(text="GİRİŞ",bg="black",fg="white",font="Arial 20 bold",command=butonBas)
b1.pack()
e4=tk.Label(text="----",font="Arial 12 bold",fg="red")
e4.pack()
e5=tk.Label(text="----",font="Arial 12 bold",fg="purple")
e5.pack()
e6=tk.Label(text="----",font="Arial 12 bold",fg="blue")
e6.pack()

pencere.mainloop()

Programa eklemeler yaparak aşağıdaki görüntüyü elde ettim.

Tkinter Entry Bilgi Alma

Burada fonksiyonun içerisine bakacak olursak;

def butonBas():
    #entry den bilgileri alma
    adsoyad=ent1.get()
    no= ent2.get()
    sinif=ent3.get()

    print(adsoyad,no,sinif)
    #etiketlere e4,e5,e6 etiketlerine yazdırma...
    e4.config(text=adsoyad)
    e5.config(text=no)
    e6.config(text=sinif)

    #entry içerik silme
    ent1.delete(0,tk.END)
    ent2.delete(0,tk.END)
    ent3.delete(0,tk.END)

Butona basılınca öncelikle 3 adet Entry den bilgiler alınıp adsoyad, no ve sinif değişkenlerine aktarılıyor. Daha sonra e4,e5 ve e6 etiketlerine bu bilgiler yazdırılıyor. En sonunda ise bu başlığımız ile alakalı entry lerin içeriği temizleniyor. ent1.delete(0,tk.END) satırı ile ent1 değişkenine tanımlı olan Entry’ nin içeriği temizlenmektedir. Parantez içerisine 2 parametre yazmamız gerekmektedir. Bu parametreler başlangıç değeri ve bitiş değerleri. tk.END fonksiyonunu Entry’ nin içeriğini sonuna kadar silmek için kullanıyoruz.

You may also like...

2 Responses

  1. Mert33 dedi ki:

    Teşekkürler çok faydalı oldu…

  2. Zafer Mesut dedi ki:

    Peki ben ent1′ i başka bir def’in içinde tanımladım daha sonra farklı bir def’in içinde ent1.get() yaptığım zaman not defined hatası alıyorum.

    Yani ben başka bir def’in altındaki Entry’i başka bir def’in altında .get() yapabilirmiyim veya nasıl yaparım?

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir