Nesne Tabanlı Geliştirme
Yukarıda örneklerini verdiğimiz şekilde, PyQt5 ile prosedür tabanlı (yordamsal) programlama ilkelerine uygun bir geliştirme sürecini takip edebilirsiniz. Ancak hem kullanışlılık açısından, hem de internet üzerinde bulacağınız örnek programların yapısı nedeniyle prosedür tabanlı programlama yerine nesneye yönelik programlama tarzını benimsemenizi tavsiye ederim.
Bir örnek verelim.
Bildiğiniz gibi, PyQt5’te boş bir pencereyi şu kodlarla oluşturuyoruz:
Burada programımız, karşısına çıkan kodları belli bir prosedürü takip ederek tek tek çalıştırıyor. Ancak internet üzerinde veya başka kaynaklarda bu şekilde yazılmış kod pek göremezsiniz. Hem daha kullanışlı olması, hem de kodların bakımını kolaylaştırması nedeniyle grafik arayüz tasarlanırken genellikle nesneye yönelik programlama tarzını takip etmek çok daha mantıklı olacaktır. Dolayısıyla yukarıdaki kodları şu şekilde yazabiliriz:
Eğer taban sınıfı (QWidget) iki kez yazmak istemiyorsanız super() fonksiyonundan yararlanabilirsiniz:
Hatta, Python3 ile gelen yeni bir özellikten yararlanarak, ne taban sınıfı, ne de sınıf adını iki kez belirtmeyi tercih edebilirsiniz:
Bu şekilde, aynı şeyleri tekrar tekrar yazma zahmetinden kurtulmanın yanısıra, sınıf adında veya miras alınan taban sınıfta bir değişiklik yapmanız gerektiğinde init() metodunun içeriğini de uygun bir şekilde değiştirme derdini bertaraf etmiş olursunuz.
Last updated