Birkaç programda görülebilen çok önemli bir pencere öğesi ComboBox'tur. Kullanıcıya aralarından seçim yapabileceği bir alternatifler listesi verilir. Birkaç değeri vardır ve bir anda yalnızca birini görüntüler. Bugünkü eğitim, Tkinter kullanarak Linux'ta ComboBox'ın nasıl kullanılacağını ele alacaktır.
Örnek 1:
Python'daki Tkinter modülünün ilk örneğiyle başlayalım. Terminal konsolu üzerinden “py” uzantılı yeni bir Python dosyası oluşturuyoruz. Bundan sonra, yeni oluşturulan Python dosyasını dosya gezgininden açmak için istediğiniz herhangi bir düzenleyiciyi kullanabilirsiniz. Bu Python kodunu, tüm alt nesneleri, sınıfları ve yerleşik varlıklarıyla birlikte koddaki Tkinter kitaplığının içe aktarılmasıyla başlatıyoruz.
Kodda kullanılacak ttk nesnesini içe aktarıyoruz. İlk olarak, “t” nesnesine yeni bir değer eklemek için Tkinter'ın Tk() fonksiyonunu çağırıyoruz. “t” nesnesi, “200×150” grafik kullanıcı arayüzü oluşturmak için geometri fonksiyonunu çağırmak için kullanılır. Bu ilk örnekte, konsol ekranında bir GUI çerçevesi oluşturmak için Tkinter'ın “frame()” yöntemini kullanıyoruz. Çerçevenin “f” nesnesi burada Tkinter pack() işlevi kullanılarak kapatılır.
Bundan sonra, içinde toplam 5 string değeri içeren string türlerinden bir “l” listesi oluşturuyoruz. Bundan sonra, Tkinter'ın ComboBox işlevini “f” çerçevesi içinde çağırmak için Tkinter ttk nesnesini kullanırız. “l” listesi ona iletilir. Bu ComboBox, “C” değişkenine kaydedilir. ComboBox'ın etiketini 'set' fonksiyonunu kullanarak ayarlıyoruz ve ComboBox'ı tam dolgularla paketliyoruz. Şimdi, genel Tkinter programını yürütmek için mainloop() işlevini çalıştırıyoruz.
Python betiğini tamamladıktan sonra kodu Ctrl+S ile kaydedip Linux sisteminin kabuk konsoluna geri dönüyoruz. Aşağıda gösterildiği gibi dosyayı yürütmek için kabuktaki Python3 talimatını ve ardından bir Python dosyasının adını deniyoruz:
$ python3 testi.py
Sorgu çalıştırıldıktan sonra konsol ekranımıza “tk” başlığı ile aşağıdaki Tkinter GUI geliyor. GUI ekranı bir comboBox, yani “1 Renk Seçin” başlıklı bir açılır liste ve onu açmak için bir üçgen işareti içerir.
Üçgen işaretine dokunduktan sonra, mevcut tüm seçenekleriyle birlikte uzun açılır liste gösterilir. Toplamda 5 seçeneğimiz olduğunu görebilirsiniz.
Diyelim ki açılır listeden “Siyah” rengini seçtiniz. Açılan ComboBox'ın başlık alanında seçilen rengin gösterildiğini göreceksiniz. Kalan liste gizlenir.
Örnek 2:
Bu sefer Tkinter'da ComboBox oluşturmak için farklı bir yöntem kullanarak başka bir örneğe bakalım. Bu nedenle, bu Python kodunu, Tkinter modülünü “tk” ile aynı Python dosyasına ve ttk sınıfını içe aktararak başlatıyoruz. Ardından Tkinter modülünün mesaj kutusu sınıfından showinfo() fonksiyonunu import ediyoruz. Ayrıca, Python'un takvim modülünden ay_adı değişkenini içe aktarıyoruz.
Tkinter modülünün tk nesnesi ile tk() fonksiyonunu çağırıyoruz ve yapıcı sonucunu “t” değişkenine kaydediyoruz. Geometri işlevi, belirli bir boyutta bir Tkinter GUI'si oluşturmak için belirtilen parametrelerle çağrılır. Title() işlevi, bir 'l' etiketi oluşturmak için Tkinter GUI'ye ve ttk sınıfından Label işlevine başlık vermek için bir 'Combobox Illustration' parametresiyle çağrılır. Paket işlevi “l” etiketini doldurmak için kullanılır. “mn” değişkeni, “tk” sınıfının StringVar() işleviyle oluşturulur. ComboBox “mcb”, ComboBox işlevi ve “mn” değişken metni kullanılarak oluşturulur. mcb ComboBox, 'for' döngüsü içinde kullanılan ay_adı değişkeni aracılığıyla 13'e kadar dize değerleriyle doldurulur.
'mcb' ComboBox durumu salt okunur olarak ayarlanmıştır ve paketlenmiştir. Select() işlevi, 'Onay' başlıklı bir uyarı iletişim kutusu oluşturmak için showinfo() işlevini çağırmak için oluşturulur ve '{ne değeri olursa olsun} seçtiniz. Bind() işlevi, “ComboboxSelected” parametreleri ve “change” işlevi eklenerek “mcb” ComboBox ile çağrılır. Mainloop() işlevi, Tkinter programını devre dışı bırakmak için yürütülür. Çalıştırmadan önce kaydedelim.
Bu dosyayı python3 sorgusunu kullanarak çalıştırıyoruz.
$ piton 3 test.py
“ComboBox çizimi” adlı aşağıdaki Tkinter ekranı aşağıda görünür:
“Choose a Month” başlığının altındaki ComboBox üçgen işaretine tıkladığımızda ay isimlerini gösteriyor.
“Temmuz”u seçtiğimizde etikette gösteriliyor ve diyalog uyarısı çıkıyor ve bir mesaj çıkıyor. Devam etmek için Tamam'a basın.
Çözüm
Bu, GUI penceresinde bir comboBox oluşturmak için Python'un Tkinter modülünü kullanmakla ilgilidir. Bunun için, frame() işlevini ve GUI'de comboBox oluşturmanın geleneksel yolunu kullanarak hedefe ulaşmak için iki basit ama farklı Python örneğini denedik. Her iki örnek için de örnek kodları dahil ettik ve kodların yürütülmesinden sonra birkaç değişiklik yaptık.