1. Temel Bilgiler

Python programlama dilini belli bir seviyeye kadar öğrendikten sonra muhtemelen konsol tabanlı programlar yazmak artık size yeterli gelmemeye başlayacaktır. Eminim siz de yazdığınız programların güzel ve işlevli bir arayüze sahip olmasını isteyeceksiniz... Python ile arayüz programlamak için elimizde bol miktarda seçenek var. Örneğin, eğer arayüz programlama konusunda yeniyseniz, Python programlama dilinin (yarı-)resmi arayüztakımı olan Tkinter‘i öğrenmeyi seçebilirsiniz. Tkinter, Python’un Windows sürümünde kurulumla birlikte gelir. GNU/Linux kullanıcıları ise, kullandıkları dağıtımın paket yöneticisini kullanarak Tkinter’i sistemlerine rahatlıkla kurabilirler. Tkinter arayüz takımını kullanarak gayet işlevli arayüzler hazırlayabilirsiniz. Üstelik Tkinter’i öğrenmek ve kullanmak oldukça basittir. Tkinter’in mevcut arayüz takımları içinde en kolay öğrenileni olduğunu rahatlıkla söyleyebilirim.

Ancak Tkinter bazı yönlerden eksiklikler barındıran bir arayüz takımıdır. Örneğin Tkinter’deki pencere araçlarının yetersizliği herkes tarafından bilinen ve ifade edilen bir gerçek... Bazı işleri Tkinter ile halledebilmek için epey uğraşmak, bol bol kod yazmak gerekebiliyor. Ayrıca Tkinter ile üretilmiş programların görünüş olarak pek cazip olmadığı da yine pek çok kişi tarafından söylenegelmektedir. Ancak yine de Tkinter’in sadeliği ve basitliği, arayüz programlamaya yeni başlayan kimseler için kolaylaştırıcı etkenlerdir. Dediğim gibi, Tkinter’in bazı eksiklikleri olsa da, bu arayüz takımını kullanarak epey faydalı programlar üretebiliriz. Eğer arayüz programlamaya Tkinter ile başlamak isterseniz, sitemizden Tkinter’in nasıl kullanılacağına ilişkin pek çok ayrıntılı bilgiye erişebilirsiniz.

Elbette Python’da arayüz tasarlamak için tek seçeneğimiz Tkinter değil. Tkinter dışında, örneğin GTK adlı arayüz takımını da kullanmayı tercih edebiliriz. Tkinter’in aksine, GTK adlı arayüz takımı oldukça gelişmiş özellikler barındırır. Bu takımı kullanarak hem işlev hem de görünüş olarak son derece olgun programlar yazabilirsiniz. Örneğin GNOME masaüstü ortamının temeli GTK’dır. Ayrıca GNU/Linux’un medar-ı iftiharı GIMP (GNU Görüntü Düzenleme Yazılımı) bu takım kullanılarak yazılmıştır. Zaten GTK da GIMP programını yazmak için üretilmiştir!.. “GTK”nın açılımına baktığımızda bu durumu net olarak görebiliriz: “Gimp Toolkit” (GIMP Araç Takımı).

Dediğimiz gibi GTK, arayüz geliştirmek için tamamen C dili ile yazılmış bir kütüphanedir. GTK’nın lisansı (LGPL), herhangi bir lisans ücreti ödemeksizin, ticari ve ticari olmayan, özgür ve özgür olmayan programlar geliştirmeye izin verir.

GTK’yı Python ile birlikte kullanabilmek için, “Pygtk” adlı bağlayıcı katmandan yararlanacağız. Pygtk, GTK ile Python arasında iletişim kurmamızı sağlayan bir kütüphanedir. GTK’nın öteki dillerdeki bağlayıcılarının listesine şu adresten erişebilirsiniz: http://www.gtk.org/language-bindings.html

Pygtk hem Windows’ta hem de GNU/Linux’ta çalıştırılabilir. Bu anlamda Pygtk, birden fazla platforma destek veren bir yapı sunar bize...

Biraz sonra Pygtk ile ilgili ilk örneklerimizi vermeye başlayacağız, ama Pygtk’yi kullanmadan önce bazı modülleri tanımamızda fayda var. Pygtk arayüz takımını kullanırken temel olarak iki modülden faydalanacağız. Bunlardan biri “Pygtk”, öbürü ise “gtk” adlı modül. Esasında asıl işi yapan, “gtk” modülüdür. “Pygtk” adlı modülü, temel olarak, kullandığımız sistemdeki Pygtk sürümünü kontrol etmek için kullanıyoruz. Modern Pygtk uygulamaları, Pygtk’nin “2.x” sürümleri kullanılarak yazılıyor. Eğer sistemimizde Pygtk’nin eski ve yeni sürümleri bir arada bulunuyorsa, Pygtk modülünü kullanarak, programınızın istediğiniz sürümle çalışmasını sağlayabilirsiniz. Biraz sonra bunun nasıl olacağını göreceğiz. Ama isterseniz önce sistemimizdeki GTK ve Pygtk sürümlerinin hangileri olduğunu nasıl öğrenebileceğimize bakalım. Bunun için şu kodları kullanıyoruz (Eğer aşağıdaki kodlarda herhangi bir hata alıyorsanız, okumaya devam edin...):

Önce gtk modülünü içe aktaralım:

>>> import gtk

Ardından gtk sürümünü kontrol edelim:

>>> gtk.gtk_version

Şimdi de Pygtk sürümüne bakıyoruz:

>>> gtk.pygtk_version

Eğer isterseniz doğrudan Pygtk modülünü kullanarak da sisteminizdeki bütün GTK sürümlerini öğrenebilirsiniz:

>>> import pygtk
>>> pygtk._get_available_versions()

Bu komut size sisteminizdeki GTK sürümlerini bir sözlük olarak verecektir. Bu komuttan şuna benzer bir çıktı elde ediyoruz:

{'2.0': '/var/lib/python-support/python2.6/gtk-2.0'}

Buradan anladığımıza göre, sistemimizde GTK’nin “2.0” sürümü kurulu. Bu sürümün sistemdeki yeri ise “/var/lib/python-support/python2.6/gtk-2.0

Aynı komutu Windows üzerinde verdiğimizde ise şöyle bir çıktı elde ediyoruz:

{'2.0': 'c:\\python26\\lib\\site-packages\\gtk-2.0'}

Eğer daha “import gtk” veya “import pygtk” aşamasında hata alıyorsanız, sisteminizde GTK paketi kurulu değil demektir. Eğer bir GNU/Linux kullanıcısı iseniz, paket yöneticinizi kullanarak gtk2 paketini kurabilirsiniz... Ya da isterseniz doğrudan Pygtk paketini kurmayı de tercih edebilirsiniz. Zira Pygtk paketini kurduğunuzda, muhtemelen bu paketin bağımlılıkları arasında gtk2 de bulunacağı için gtk2 paketi de sisteminize kurulacaktır...

Windows kullanıcıları ise Pygtk’yi kullanabilmek için şu paketleri indirip kuracak:

Windows kullanıcıları yukarıda verdiğim bağlantılara tıklayarak, ilgili paketlerin en son sürümlerini sistemlerine kurabilir. Elbette sisteminizde Python’un da kurulu olduğunu varsayıyorum...

Not

Eğer Windows’ta yukarıdaki adımları takip ederek PyGtk’yi kurduktan sonra herhangi bir PyGtk programını çalıştırmak istediğinizde ImportError: DLL load failed: Belirtilen modül bulunamadı. şeklinde bir hata alıyorsanız http://www.istihza.com/blog/windowsta-bir-pygtk-hatasi.html/ adresinde gösterdiğimiz yöntemi uygulayın.

Gördüğünüz gibi, GTK ve Pygtk’yi kurmak GNU/Linux sistemlerinde çok basittir. Eğer GNU/Linux dağıtımlarından birini kullanıyorsanız paket yöneticiniz aracılığıyla gerekli paketleri kurmak birkaç tıklamalık bir iştir. Pygtk’yi Windows’a kurmak ise bazı durumlarda biraz uğraştırabilir. Windows’ta özellikle bazı paketlerin birbiriyle uyuşma sorunu nedeniyle Pygtk’yi kurmakta zorlanabilirsiniz. Eğer Pygtk’yi kurarken altından kalkamadığınız bir sorunla karşılaşırsanız kistihza [at] yahoo [nokta] com adresinden bana ulaşabilirsiniz. Ben size elimden geldiğince yardımcı olmaya çalışırım...