30.07.2015 Views

Ä°ndir - Pardus-eDergi.org

Ä°ndir - Pardus-eDergi.org

Ä°ndir - Pardus-eDergi.org

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

<strong>Pardus</strong>-Linux.Org e-dergi Sayı 11 Ağustos 2009PYGTK VE GLADE İLE ARAYÜZ TASARIMI<strong>Pardus</strong>-Linux.Org e-dergi Sayı 11 Ağustos 2009Can Mustafa ÖZDEMİRcanmustafaozdemir@gmail.comhttp://www.gotocan.comBu sayede pygtk için temel kütüphaneleri çekiyoruz ve bunu yaparken versiyons<strong>org</strong>uluyoruz. Eğer pygtk sürümümüz 2.0 ve üstü değilse ya da Glade desteğimizyoksa program sonlanıyor. Eğer böyle bir şeyle karşılaşırsanız, gerekli paketleritekrar kurmaya çalışın. Bu kısımda bir sorunla karşılaşmazsanız, her şey yolundademektir. Arayüz sınıfımızı oluşturmaya başlayabiliriz.Klasik şekilde sınıfımızı oluşturalım:class pyMain:def __init__(self):Bundan sonra, ilk olarak arayüz dosyamızı, kodlarımıza çekmek olacaktır:class pyMain:def __init__(self):self.gladefile = "proje1.glade"self.wTree = gtk.glade.XML(self.gladefile, "window1")“proje1.glade” adını verdiğimiz dosyayı kodumuza çektik ve onugladefile olarak adlandırdığımız değişkene atadık. Nesne tabanlıprogramlamayla arası iyi olmayanlar için belirtmeliyim, “self” ifadesini hiçkullanmasaydık, program çalışırdı ama ileride aşamalarda arayüzden yeni birşey çekmek istediğimizde, gladefile değişkenimizi __init__ fonksiyonu dışındakullanamazdık. Yani self. ifadesi bu açıdan birazcık global ifadesine benzer.İkinci satırda self.wTree adlı bir değişken yarattık. Tabiki bunlaraTürkçe isimlerde verebilirdik (Türkçe karakter kullanmadan) ama gladefile vewTree değişken isimlerini kullanmak bir pyGTK geleneğidir. İleridekodlarınızın evrensel bir boyut kazanması açısından bu alışkanlığı kazanırsanıziyi olur diye düşünüyorum.gtk.glade.XML(self.gladefile, “window1”) ifadesiyle window1 adlıpenceremizin tüm haritasını koda çekiyoruz. Eğer merak ettiyseniz gladedosyasını bir editör ile açın. Sıradan bir XML dosyası olduğunu göreceksiniz.Sırayla devam edelim:class pyMain:def __init__(self):self.gladefile = "proje1.glade"self.wTree = gtk.glade.XML(self.gladefile, "window1")dic = {"on_window1_destroy" : gtk.main_quit, "on_button1_clicked" : self.on_b1_clicked}self.wTree.signal_autoconnect(dic)Python'da degisken = {a:b, c:d} gibi ifadelerin sözlük oluşturduğunuhatırlayacaksınız. Biz de burada grafik araçlarına atadığımız işlevlerinkodlarımız içinde nasıl çağırıldığını belirten bir sözlük oluşturduk. Bu sayedeoluşturacağımız fonksiyona self.on_button1_clicked yazmak yerineself.on_b1_clicked yazabiliriz. Sonra ise wTree değişkenimize sözlükteki yenifonksiyon isimlerimizi self.wTree.signal_autoconnect(dic) ile tanıttık. Aslındabu kadar kısa kodlar için buna gerek yoktu ancak yöntem olarak aklınızın birköşesinde bulunması iyi olur.class pyMain:def __init__(self):self.gladefile = "proje1.glade"self.wTree = gtk.glade.XML(self.gladefile, "window1")dic = {"on_window1_destroy" : gtk.main_quit, "on_button1_clicked" : self.on_b1_clicked}self.wTree.signal_autoconnect(dic)

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!