Glade Dizayn Aracı ile Oluşturulan Dosyayı Çağırma

Glade Dizayn Aracı ile Oluşturulan Dosyayı Çağırma

Mesajgönderen virss » 30 Haz 2007, 11:23

GTK Arayüzlerini Oluşturan Glade Dizayn Aracı ile Oluşturulan Dosyayı Python, C ve C++ da Çağırma, Libglade ve RAD

Yazan : Yugruk

Libglade GTK arayüzlerini havada oluşturmaya yardımcı olan kütüphanedir. GTK arayüzleri Glade dizayn aracı ile oluşturulur ve program içinde libglade aracılığı ile kullanılırlar.
Libglade’in avantajı hazırladığınız ara yüzü bir sürü dilde kullanabilmeniz.Ana dil C/C++ başta olmak üzere Python, Java, Ruby … gibi dillere port edilmiştir.
Libglade’in kullanılma mantığı şudur. Arayüzlerimizi glade ile hazırlarız, ara yüzü tasarlarken ilgilendiğimiz olayları seçeriz ve bu olayı yönetecek fonksiyona bir ad veririz ve tasarladığımız arayüzleri bir .glade dosyasına kaydederiz. Daha sonra hangi dili kullanıyorsak o dile port edilmiş libglade aracılığı ile bu .glade dosyasını progamımıza yükleriz ve ilgilendiğimiz nesneyi çağırıp modifiye ederiz, nesnenin ilgilendiğimiz olaylarına fonksiyon ekleriz,sileriz vs vs
Libglade’in kullanımını daha iyi anlamak için ana sitesindeki örnek kodları buraya aldım :

( C ve C++ Programlamada Bu işi Yapma )
Kod: Tümünü seç
#include <gtk/gtk.h>
#include <gtk/libglade.h>

void
some_handler(GtkWidget *widget)
{
/* ilgilendiğimiz nesnenin ilgilendiğimiz olayına atayacağımız
fonksiyon adı, statik olmamalı imiş !!!
*/
}

int main(int argc, char **argv)
{
GladeXML *xml;
GtkWidget *widget;

gtk_init(&argc, &argv);
xml = glade_xml_new(”filename.glade”, NULL, NULL); //.glade dosyasımızı programa alıyoruz

/* ilgilendiğimiz nesneyi .glade dosyasından oluşmuş ağaçtan çekiyoruz */
widget = glade_xml_get_widget(xml, “widgetname”);

/* olay yöneticilerini bağlıyoruz, arayüzü tasarlarken seçtğimiz olayları ele alacak
fonksiyonların önceden hazır olması gereklidir.
*/
glade_xml_signal_autoconnect(xml);

gtk_main(); /* programın ana döngüsü, işletim sistemi ile mesajlaşmaları vs vs
*/

return 0;
}


bu programı derlemek için libglade kütüphanesi ile bağdaştırmanız gereklidir bunun için gcc yi çağırırken şu şekilde çağırmalısınız “gcc -o program_adi testprogram.c `pkg-config –cflags –libs libglade-2.0`
bende yüklü olan libglade sürümü 2.0 imiş bunu /usr/lib/pkgconfig içindeki libglade-2.0.pc dosyasından anladım.

(Python Programlamada Bu işi Yapma)Aşağıda aynı işi yapan python programı.

Kod: Tümünü seç
import gtk
import gtk.glade

def some_handler(widget):
pass

xml = gtk.glade.XML(’filename.glade’)
widget = xml.get_widget(’widgetname’)
xml.autoconnect({
’some_handler’: some_handler
})
gtk.main()



Pythonda derleme işlemine gerek yok . Sadece pyGTK python kütüphanesinin olması ve tabi ki libglade’in olması yeterli. Zaten son zamanlarda python ile libglade programlarda sık kullanılıyor çünkü RAD (Rapid Application Development) yani hızlı yazılım geliştirme’yi sağlıyor.

GTK programları yazmak istiyorsanız libglade + glade + pyhton (ya da C) üçlemesini kullanarak aklınızdaki programları hızlıca yazabilirsiniz.
Yakında Anjuta IDE’sinin daha da gelişmesi ile QT’nin en büyük avantajı olan RAD toollarının GTK’daki karşılığıda sağlanmış olur ve daha fazla program GTK ile hızlı ve kolayca yazılacak diye düşünüyorum.
Libglade’i sisteminize kurup denemek istiyorsanız sisteminizin paket yöneticisini kullanmanızı tavsiye ederim yoksa bilgisayarınız kütüphane çöplüğüne çevirirsiniz ve sisteminizin çökmesine sebep olabilirsiniz.

Linkler:
Libglade kütüphanesi ana sitesi : http://www.jamesh.id.au/software/libglade/
PyGTK (python libgtk bağdaşımı ) ana sitesi : http://www.pygtk.org
PyGTK apileri ve açıklamaları : http://www.pygtk.org/docs/pygtk/index.html
Kullanıcı avatarı
virss
Deneyimli Üye
Deneyimli Üye
 
Mesajlar: 377
Kayıt: 27 Eki 2006, 00:00
Konum: İstanbul

Dön Glade / Anjuta, GTK

Kimler çevrimiçi

Bu forumu gezen kullanıcılar: Hiç bir kayıtlı kullanıcı yok ve 1 misafir

cron