Ders-13: Tkinter Listbox Kullanımı

Ders-13: Tkinter Listbox Kullanımı

Bu araç ile liste oluşturup, listeden seçim yapabiliriz. Kullanımı diğer araçlara çok benzemektedir. Aşağıda kullanımı, parametreleri ve metotları ayrıntılı bir şekilde belirtilmiştir.

Tkinter Listbox Kullanımı:

import tkinter as tk
meyveler=["elma","armut","çilek","üzüm","karpuz","kavun"]
pencere=tk.Tk()
pencere.title("List Box Aracı")
pencere.geometry("350x350")
list1=tk.Listbox()
list1.place(x=10,y=10)

for i in meyveler:
    list1.insert(tk.END,i)
pencere.mainloop()

Yukarıda görüldüğü gibi meyveler listesindeki elemanları list1 isimli ListBox a eleman olarak ekledik. For döngüsü ile meyveler listesinde bir döngü açtık ve tüm elemanları insert fonksiyonunu kullanarak ListBox a ekledik. Parametre olarak parantez içerisine yazdığımız değerlerin anlamı; tk.END den başla yani sonundan başla, bir başka deyişle sonuna ekle demek oluyor. Ekran çıktısı aşağıdaki gibi olur…

Tkinter Listbox Kullanımı

Tkinter Listbox Parametreleri:

Bu başlık altında ListBox oluşturuken parantez içerisine yazacağımız parametrelerden bahsedeceğim. Bu parametreleri ile oluşturacağınız listbox ı düzenleyebilir daha iyi bir görünüme kavuşturabilirsiniz. Şimdi sırası ile bu parametrelere değinelim…

bg : Arka plan rengi
bd : Kenarlık kalınlığı(px).Varsayılan 2px
cursor: Fare imleci görünümü
font : Liste elemanlarının yazı tipi ayarları
fg : Metin rengi
width: Liste kutusu genişliği (Karakter sayısı olarak). Varsayılan 20
height: Liste kutusu satır sayısı. Varsayılan 20
relief : Liste kutusu kenarlık kabartma şekli.(Sunken,Raised,Groove,Flat)
selectmode : Liste elemanlarının seçim şekli.
BROWSE : Varsayılan değerdir. Sadece tek liste elemanı seçilebilir. Fareyi sürüklediğinizde seçim fareyi takip eder.
SINGLE : Sadece tek liste elemanı seçilebilir. Fare sürüklendiğinde seçim fareyi takip etmez.
MULTIPLE : Listeden birden çok satır seçilebilir. Fare sürklemesi ile seçim yapılamaz
EXTENDED : Listeden çoklu seçim yapılabilir. Fare sürklemsi ile seçim yapılabilir. ctrl ve shift tuşlerı yardımı ile seçim yapılabilir.

xscrollcommand: Liste kutusuna yatay kaydırma çubuğu bağlamak için kullanılır
yscrollcommand : Liste kutusuna dikey kaydırma çubuğu bağlamak için kullanılır

Örnek olarak aşağıdaki kodları incelemenizi öneriyorum. Hemen altında da ekran çıktısını bulabilirsiniz.

import tkinter as tk
meyveler=["elma","armut","çilek","üzüm","karpuz","kavun"]
pencere=tk.Tk()
pencere.title("List Box Aracı")
pencere.geometry("350x350")
list1=tk.Listbox(bg="orange", fg="Purple",relief="raised",font="Arial 14")
list1.place(x=10,y=10)

for i in meyveler:
    list1.insert(tk.END,i)
pencere.mainloop()

Ekran Çıktısı:

Tkinter Listbox Kullanımı

Tkinter Listbox Metotları:

Aşağıda listbox araçları ile beraber kullanabileceğiniz metotlar gösterilmiştir. Bu metotlar:

activate ( index ): Belirtilen dizine göre belirtilen satırı seçer.
curselection( ) :Seçilen öğenin veya öğelerin satır numaralarını içeren ve 0’dan sayan bir tuple döndürür. Hiçbir şey seçilmezse, boş bir tuple döndürür.
delete ( first, last=None ): İndeksleri [first, last] aralığında olan satırları siler. İkinci bağımsız değişken atlanırsa, önce dizin içeren tek satır silinir.
get ( first, last=None ): Satırların metnini içeren bir tuple döndürür, ilkinden sonuncusuna kadar indeksler içerir. İkinci bağımsız değişken atlanırsa, ilk satıra en yakın satırın metnini döndürür.
index ( i ): Mümkünse, liste kutusunun görünür kısmını, dizin i içeren satır widget’ın en üstünde olacak şekilde konumlandırır.
insert ( index, *eleman): Dizin tarafından belirtilen satırdan önce liste kutusuna bir veya daha fazla yeni satır ekler. Liste kutusunun sonuna yeni satırlar eklemek istiyorsanız, ilk bağımsız değişken olarak END kullanın.
nearest ( y ): Listbox widget’ına göre y koordinatına en yakın görünen satırın dizinini döndürün.
see ( index ):Dizin tarafından başvurulan satır görünür olacak şekilde liste kutusunun konumunu ayarlar.
size( ): Liste kutusundaki satır sayısını döndürür.
xview( ) : Liste kutusunu yatay olarak kaydırılabilir yapmak için, ilişkili yatay kaydırma çubuğunun komut seçeneğini bu yönteme ayarlayın.
xview_moveto ( fraction ): Liste kutusunu, en uzun çizgisinin genişliğinin en soldaki kısmı liste kutusunun sol tarafının dışında olacak şekilde kaydırın. range[0,1] aralığındadır.
xview_scroll ( number, what ): Liste kutusunu yatay olarak kaydırır. Karakterler, sayfaları kaydırma veya SAYFA başına kaydırmak için ne tartışması, kullanmak için her iki BİRİM için, bu liste genişliği ile. Number bağımsız değişkeni kaç kaydırılacağını söyler.
yview( ): Liste kutusunu dikey olarak kaydırılabilir yapmak için, ilişkili dikey kaydırma çubuğunun komut seçeneğini bu yönteme ayarlayın.
yview_moveto ( fraction ): Liste kutusunu, en uzun çizgisinin genişliğinin en üst kısmı liste kutusunun sol tarafının dışında olacak şekilde kaydırın. range[0,1] aralığındadır.
yview_scroll ( number, what ): Liste kutusunu dikey olarak kaydırır. Satırları, sayfaları kaydırma veya SAYFA başına kaydırmak için ne tartışması, kullanmak için her iki BİRİM için, bu liste boyuyla. Number bağımsız değişkeni kaç kaydırılacağını söyler.

Tkinter Listbox Kullanımı Bir Örnek

Aşağıda ekran resmi ve kodları verilen örnekte listbox aracına veri ekleme, veri silme, verileri temizleme gibi özellikler anlatılmıştır.

Tkinter Listbox Kullanımı Bir Örnek

Bu örnekte sağ tarafta bulunan Entry Aracına kullanıcı meyve ismi yazarak ekle butonuna basa bilmektedir. Böylece meyve sol taraftaki Listbox a eklenecektir. Alt tarafta yer alan düğmeler ise;SİL düğmesi o anda seçili olan kaydı silmekte, TEMİZLE düğmesi ise Listbox aracının tamamını temizlemektedir. Kodlar aşağıda verilmiştir.

import tkinter as tk
meyveler=["elma","armut","çilek","üzüm","karpuz","kavun"]

pencere=tk.Tk()
pencere.title("List Box Aracı")
pencere.geometry("350x350")

def ekle():
    s1 = ent1.get()
    list1.insert(tk.END,s1)
    ent1.delete(0,tk.END)
def sil():
    list1.delete(tk.ACTIVE)
def temizle():
    list1.delete(0,tk.END)

list1=tk.Listbox()
list1.place(x=10,y=10)

for i in meyveler:
    list1.insert(tk.END,i)

e1=tk.Label(text="Meyve Gir :")
e1.place(x=150, y=10)
ent1=tk.Entry()
ent1.place(x=150, y=35)
b1=tk.Button(text="EKLE",command=ekle)
b1.place(x=150, y=60)

b2=tk.Button(text="SİL",command=sil)
b2.place(x=10, y=200)

b3=tk.Button(text="TEMİZLE",command=temizle)
b3.place(x=40, y=200)


pencere.mainloop()

You may also like...

1 Response

  1. 21/04/2021

    […] Çoklu seçim için selectmode=”extended” parametresinden faydalanıyoruz. Bu parametre ve diğer parametreler ile ilgili bilgiyi bir önceki dersimizde bulabilirsiniz. Tkinter Listbox Kullanımı dersi için tıklayın. […]

Bir cevap yazın

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