Bir süredir nasıl da bir heyecanla uğraşıyordum projeyle... Amacım Rapidshare hesabına sahip kullanıcıların rahatlıkla dosya indirebilecekleri bir uygulama yazmaktı. Ana pencereyi Glade ile yaptım gayet güzel ve sade bir şekilde... Ufak ufak olayları yazmaya başladım. Daha sonra kodu Eclipse üzerine alarak biraz daha projemsi bir hale getirdim. Sonra sorunlar başladı....
Örneğin bir tuşa bastınız. Basılan tuşun olayını Glade ile ayarlayıp daha sonra bunu Python kodu içerisinden fonksiyonlara bağlayarak işinizi görebiliyorsunuz. Buraya kadar sorun yok... Help->About kısmına bir AboutDialog koymaya ve burada klasik anlamda bir Hakkında bilgisi vermeye çalıştım. Basitçe bunu da Glade içerisinde yapayım dedim. AboutDialog'u bir sınıf içerisine alarak, üst sınıfı genişleterek bir şeyler yapmaya başladım. Bu AboutDialog denen diyaloğun alt tarafında ön tanımlı olarak bir Kapatma tuşu geliyor. Ancak bu zımbırtıya bastığınızda pencere kapanmıyor.. Bu tuşlar, basıldığında pencerede bir tepki (response) yaratıyormuş. Bu tepkiyi bir fonksiyona ileterek pencereyi kapatmam gerektiğini öğrendim. Bunu öğrenebilmek için PyGTK'nın referans kitabına kaç saat, kaç gün baktığımı söylesem gülenler olacaktır. Ya tek istediğim gtk.RESPONSE_CLOSE tepkisinin oluşturulması durumunda pencerenin bir şekilde kapatılmasıydı... Hadi bunu da zar zor becerdim. Sinyal olarak bana -6 döndürüyor ve ben bunu gtk.RESPONSE_CLOSE ile karşılaştıramıyorum. Bir sürü IRC kanalına girdim, sorular sordum; cevap yok... Hele ki Türk'ler arasında bunu bilen bir Allah'ın kulu çıkmıyor, kafayı yememek elde değil..!
Bir başka şey.... Google Code Search'te falan bakıyoruz örnek kodlara.... Adam,
dialog.run()
dialog.destroy()
demiş altalta.... Yahu .destroy() pencereyi kapatıp, belleklerden silmez mi ?! O zaman amaç ne ? Hayır silmiyor....! Silmekle kalmıyor, bizim çalışmayan buton, bir anda aslan kesilip alıyor tepkiyi.. Basınca kapanıyor lanet olası pencere..
Aynı şekilde bir diyaloğu çalıştırmak için, .show_all(), .show(), .run(), .present() gibi metodlarımız var.. Zengin bir olay yani..... Okununca hangisinin ne işe yaradığı az çok anlaşılsa da, kullanılacak yerlerin net bir şekilde akılda kalması oldukça zor.....
Uzun lafın kısası... Bu gece PyGTK'dan da, GTK'dan da nefret ettim..... Bana QT diyecek olanlara da selam olsun... Eminim, daha farklı değildir..
|
Bora Güngören'
26.07.2007, 06:53
|
Vallahi QT'nin olay modeli çok daha kalabalık, çok daha zengin. Ancak grafik ara birim programlarken bilakis işe gelen bir şey bu. Çoğu kez "havalı" görsel davranışlar ardışık bir seri olayın işlenmesi ile oluyor. Tıpkı Mortal Kombat'da 10-15 darbeli "combo" yapmak gibi bir şey bu. |
|
plac
26.07.2007, 08:13
|
@işbaran: |
|
Tonguç Yumruk
26.07.2007, 08:48
|
And now for something completely different: wxPython |
|
Alper KANAT
26.07.2007, 10:41
|
İşin ilginci.. Bu yazıyı yazdıktan sonra herşeyi kapayıp başka işlere vermiştim kendimi... Sonra kafama esti, "yapıcam ulan" diyip bir daha saldırdım. 1 haftadır ara ara uğraşıp yapamadığım şeyi bir kaç dakikada hallettim, hatta başka şeyleri de bitirdim web sayfasını default tarayıcıda açmak gibi.. :) Bu sinir iyi geldi valla.. |
|
Pınar
26.07.2007, 14:42
|
ıhm... *parmaklarını katırdatır* |
|
Pınar
26.07.2007, 14:43
|
onaylanmaması gereken yorum: |
|
plac
26.07.2007, 15:24
|
Merhaba, |
|
Alper KANAT
26.07.2007, 18:59
|
:) Pınar, hainlik olsun diye 2sini de direk onayladım.. Yaşasın kötülük..! Yorum için teşekkürler..! QT'yi merak etmiyor değilim. Özellikle Skype'ın beta sürümü ve LastFM ile acayip dikkatimi çekiyor. Hadi hayırlısı :) |
|
plac
26.07.2007, 19:23
|
@pınar: |
|
pinar
26.07.2007, 20:14
|
@plac |
|
işbaran
26.07.2007, 23:59
|
@plac |
|
Ömer Fadıl USTA
27.07.2007, 00:45
|
>Hele ki Türk’ler arasında bunu bilen bir Allah’ın kulu çıkmıyor, kafayı yememek elde değil..! |
|
plac
27.07.2007, 08:13
|
@işbaran: |
|
hasan
22.08.2007, 14:02
|
Ben bir önceki yazını okuyunca, bu yazıyı neden yazdığını daha iyi anlıyorum. aşk başka iş başka ama aşkınıda böyle yerme istersen. |
|
işbaran
09.09.2007, 11:17
|
@plac |
|
Mirat Can Bayrak
11.11.2007, 23:41
|
bende pygtk kasyorum kötümü ediyorum acep? |
|
Alper KANAT
13.11.2007, 01:14
|
Bence kötü değil yaptığın... GNOME ve GTK programlarının ne kadar fazla olduğu düşünüldüğünde yanlış bir seçim olmadığını da düşünüyorum ben. Bu bakımdan bence devam etmelisin kesinlikle.. |
|
yavuz selim
09.10.2008, 10:50
|
Gözünü sevdiğimin Gtk'sı .. Taş gibi mubarek. insan onda erciyes dağının sağlamlığını (ama bir o kadar soğukluğunu) hissediyor. QT deniz gibi kaypak, her an dağılıp gidecek imajı veriyor. Seviyorum GTK/GNOME'u kardeşim. ne o troltech felan bizi bozar. |


kasım 2008

etiket bulutu
yeni yorumlar
destekliyorum!







arkadaşlar
girilesiceler
twitter
iletişim







üyelik girişi


Yollanıyor...


Hiçbir şey bilmediğin bir konuda nasıl bu kadar emin olabiliyorsun :) GTK ile Qt arasında benzerlik bile yok desem yeridir.
Bir denersen arayüz programlamanın Qt ile yapılması gerektiğini görüceksin ;) Sadece arayüz değil tabi ki, ister Qt ile C kullan, ister python ile pyqt kullan, bir butonu new Buton() diyip oluşturuyor, buton.close() diyip kapatiyoruz biz :D