Ubuntu 20.04 sistemine başlarken, terminal kabuğundaki bazı komutları kullanarak sistemimizi güncelliyoruz. Ctrl+Alt+T ile terminal uygulamasını başlatıyoruz ve üzerine apt “update” komutunu ekliyoruz. Yürütme, oturum açan kullanıcının parolasını gerektirir ve bir parola eklendikten sonra tüm sistemi günceller.
Python3'ün başarılı kurulumundan sonra, kodda farklı widget'larını kullanmak için Python tk yardımcı programını kurmanız gerekir. Kurulum için terminal sorgu alanında aşağıdaki komutu deneyin:
Bu yardımcı programın kurulumu, kendisini tamamlamadan önce onayınızı gerektirir. Aşağıdaki soru sorulduktan sonra 'y' tuşuna basın:
Bu yardımcı programın tüm kurulumundan sonra, terminal ekranında “tk” widget'ı için aşağıdaki iletişim kutusunu alıyoruz. İki düğmesi vardır - biri çıkmak için, diğeri yalnızca bir tıklama için.
Sürekli “Beni tıkla!” düğmesine tıkladıktan sonra butonuna basarsak, içerdiği metnin etrafındaki köşeli parantezleri alırız. “Tk” diyalog ekranı genişler. “Çıkış”a dokunulduğunda
düğmesine basarsanız, tk diyaloğu herhangi bir sorunla kapatılır.
Örnek 1:
Programda Tkinter Listbox kullanımını göstermek için ilk Python örneğimize başlıyoruz. Bunun için yeni bir Python dosyası oluşturuyoruz ve “Tkinter” kütüphanesinin ilgili tüm fonksiyonlarını içe aktarıyoruz. GUI nesnesi “t”, “Tk()” işlevi kullanılarak kodda oluşturulur. Ekranımızda ana GUI penceresini oluşturmamızı sağlar. Geometri() işlevi, belirli bir boyutta bir ekran oluşturmak için Tkinter'ın “t” nesnesi kullanılarak çağrılır.
Şimdi, Tkinter GUI ekranında, widget'ı etiketlemek için bir metin içeren metin türünde bir 'l' widget etiketi oluşturuyoruz. Bundan sonra bir “Listbox” fonksiyonunun parametrelerinde “t” nesnesini kullanarak bir widget Listbox oluşturuyoruz. Liste kutusu parçacığını kullanan insert() işlevi, bir sipariş oluşturmak için belirtilen numaralandırmayla Liste Kutusuna 5 yeni dize değeri eklemek için çağrılır.
“l” etiketi bundan sonra pack() işlevi kullanılarak paketlenir. Liste Kutusu paketlenmiştir. mainloop() işlevi, bir kullanıcı tarafından oluşturulan temel bir olay döngüsü oluşturmak için Tkinter'ın “t” nesnesi kullanılarak çağrılır. Python'da Tkinter modülü aracılığıyla bir Liste Kutusu bu şekilde kullanılır. Program artık tamamlanmış ve kullanıma hazırdır. Dosyaya kaydedip çıkalım.
#!/usr/bin/python3tkinter import'dan *
t = tk ( )
t. geometri ( '200x250' )
l = etiket ( t, metin = 'En sevdiğim renkler...' )
liste kutusu = liste kutusu ( t )
liste kutusu.insert ( 1 , 'Beyaz' )
liste kutusu.insert ( iki , 'Siyah' )
liste kutusu.insert ( 3 , 'Kırmızı' )
liste kutusu.insert ( 4 , 'Mavi' )
liste kutusu.insert ( 5 , 'Sarı' )
l.paket ( )
liste kutusu.paket ( )
t.ana döngü ( )
Dosyayı kapattıktan sonra tekrar terminali çalıştırıyoruz ve “ls” komutu ile ana dizin içeriklerini listeliyoruz. Yeni güncellenen Python dosyasının da orada olduğunu gösteriyor. Python dosyasını çalıştırmak için python3 kullanıyoruz.
Yürütüldüğünde ekranımıza Tkinter'in aşağıdaki GUI ekranı “tk” başlığı ile açılır. Gri renkli alanda etiketli metni görebilirsiniz. Beyaz alanda Listbox öğelerini, yani Listbox nesnesi kullanılarak Listbox'a eklenen öğeleri görebilirsiniz. GUI Tkinter ekranını en sağ köşede kırmızı ile verilen çarpı işaretini kullanarak kapatabilirsiniz.
Örnek 2:
Biraz etkileşimli hale getirmek için diğer bazı widget'larla birlikte Listbox'ın kullanımına bir göz atalım. Aynı Python betiği, bazı satırlarda küçük değişikliklerle aynı kod dosyasında kullanılır. Bu kodun 12. satırına yeni bir kod satırı ekliyoruz. “Delete” metnini buton etiketi ve Tkinter nesnesi “t” alarak “Button” fonksiyonunu kullanarak Tkinter GUI ekranında “b” butonunu oluşturuyoruz.
Button() işlevinin üçüncü parametresi, ANCHOR kullanarak, yani bir öğeyi seçip düğmeyi kullanarak silmek gibi Listbox öğeleri için silme komutunu içerir. Etiket, Liste Kutusu ve düğme paketlenir. Bu GUI'nin yürütülmesi için ana olay döngüsü oluşturulur.
#!/usr/bin/python3tkinter import'dan *
t = tk ( )
t. geometri ( '200x250' )
l = etiket ( t, metin = 'En sevdiğim renkler...' )
liste kutusu = liste kutusu ( t )
liste kutusu.insert ( 1 , 'Beyaz' )
liste kutusu.insert ( iki , 'Siyah' )
liste kutusu.insert ( 3 , 'Kırmızı' )
liste kutusu.insert ( 4 , 'Mavi' )
liste kutusu.insert ( 5 , 'Sarı' )
b = Düğme ( t, metin = 'Silmek' , komut = lambda liste kutusu =listbox: listbox.delete ( ÇAPA ) )
l.paket ( )
liste kutusu.paket ( )
b. paket
t.ana döngü ( )
Aynı dosyayı kaydettikten sonra çalıştırıyoruz.
Çıktı, bir “Sil” düğmesiyle birlikte 5 öğenin Liste Kutusunu gösterir.
“Mavi” Liste Kutusu maddesini seçiyoruz ve “Sil” butonuna basıyoruz.
Seçilen öğe Liste Kutusundan silinir.
Şimdi, ekstra bir işlevsellik eklemek için aynı kodu güncelliyoruz. Böylece 3. satırda bir GUI penceresinin boyutunu güncelliyoruz. Kodun 5. satırına “showSelected()” fonksiyonu için bir tanım ekliyoruz. Bu işlev, “Lbx” Liste Kutusundan seçilen öğe metnini almak için aşağıdaki nesneyi kullanarak config() işlevini çağırır. 15. satırda düğme, komut parametresinde showSelected() işlevini çağırır.
#!/usr/bin/python3tkinter import'dan *
t = tk ( )
t. geometri ( '400x300' )
def showSelected ( ) :
show.config ( Metin =Lbx.get ( ÇAPA ) )
l = etiket ( t, metin = 'En sevdiğim renkler...' )
Lbx = Liste kutusu ( t )
Lbx.pack ( )
Lbx.insert ( 1 , 'Beyaz' )
Lbx.insert ( iki , 'Siyah' )
Lbx.insert ( 3 , 'Kırmızı' )
Lbx.insert ( 4 , 'Mavi' )
Lbx.insert ( 5 , 'Sarı' )
Buton ( t, metin = 'Seçilileri Göster', commnd=showSelected).pack()
göster = Etiket(t)
göster.paket
t.ana döngü()
Güncellenen kodu çalıştırıyoruz.
“Show Selected” butonu ile Listbox'ın aşağıdaki ekranı oluşturulur.
Liste Kutusu öğesini “Beyaz” seçiyoruz ve “Seçilileri Göster” düğmesine dokunuyoruz. Düğmeden sonra GUI ekranında “Beyaz” metin görüntülenir.
Çözüm
Bu tamamen Python'da Tkinter modülünün kullanımı ile ilgili. Tkinter kütüphanesi üzerinden Python kodunda Listbox'ı nasıl kullanabileceğimizi görmek için toplam 2 basit Python örneği ekledik. Tkinter GUI'yi daha etkileşimli hale getirmek için farklı widget'ların nasıl kullanılabileceğini, özellikle Listbox ve ilgili düğmelerin oluşturulmasını gördük.