Jump to content

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


Muallim-i Ali

Recommended Posts

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 )

#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;
}[/CODE]

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.

[b](Python Programlamada Bu işi Yapma)[/b]

[CODE]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()[/CODE]

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

Link to comment
Share on other sites

Archived

This topic is now archived and is closed to further replies.

  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...