Glade, gtk+ ?

Glade, gtk+ ?

# Mayıs 20, 2018 # Kodlama Teknoloji Uncategorized 0

GLADE

Glade Nedir?

Glade, Gnome Masaüstü ortamına ,GTK+ araçkiti için hızlı ve kolay arayüzler sağlamak üzere geliştirlmiş bir RAD aracıdır.

Glade ile tasarlanmış kullanıcı arayüzleri XML biçeminde kayıt edilir ve GtkBUilder nesnesi GTK arayüzü olarak biçemi dinamikleşmesini sağlar.

GtkBuilder kullanarak Glade dosyalarını kullanan sayısız programlama dili vardır.Başta C olmak üzere C ++,C#,Vala,Perl,Python,Java …

Glade Özgür bir yazılımdır ve GNU GPL Lisansına sahiptir.

Gtk Builder?

Glade tasarımcısıyla arayüzler oluşturmak şöyle bir kenarda dursun,peki ama bu dosyalar nasıl programda yer alır; bunun için öncelikli dikkat etmemiz gereken GtkBuilder’dır.
GtkBuilder kayıt edilen Glade .xml arayüz dosyalarının ,programcı tarafından widget,window,dialog gibi gtk araçları olarak kullanılmasına imkan verir.

GtkBuilder İşlevleri?

    • – add_from_file

UI tanımını içeren dosyayı ayrıştırır .

    • – add_from_string

UI tanımını içeren karakter grubunu ayrıştırır.

    • – add_objects_from_file

UI tanımını içeren dosya içinden belirtilen gtk araçlarını ayrıştırır.

    • – add_objects_from_string

UI tanımını içeren karakter dizesi içinden belirtilen gtk araçlarını ayrıştırır.

    • – get_object

Ayrıştırılmış dosya veya karakter dizesi içinden ismi tanımlanan gtk aracını verir.

    • – get_objects

Ayrıştırılmış dosya veya karakter dizesi içinde bulunan tüm gtk araclarını bir liste olarak bilgisini verir.

    • _connect_signals

Adlanıdırılmış sinyallerin gtk aracının yeniden tanımlanmasına gerek
duyulamadan uygulama tarafından erişilmesini sağlar.

Başlıca gtk.Builder işlevleri bunlardır tüm diğer seçenekler için gerekli bilgiye buradan(http://www.pygtk.org/docs/pygtk/class-gtkbuilder.html) ulaşabilirsiniz.
ÖRNEKLER

Glade ile oluşturulan basit bir pencere python ile şu şekilde kullanılabilir:

$ python 
>>> import gtk
>>> builder = gtk.Builder()
# add_from_string özelliğini kullanabilmek için uygulamamız için bir 
# UI tanımı oluşturuyoruz
>>> buffer = """ 
..   
...     False
...     False
...     
...       
...         button
...         True
...         True
...         True
...         False
...       
...     
...   
... """

#Oluşturduğumuz UI tanımını builder ‘a ekliyoruz

  
builder.add_from_string(buffer)
>>> builder.add_from_string(buffer)
>>> win = builder.get_object("window1")
>>> win.connect("delete-event",gtk.main_quit)
>>> win.show_all()

  Şimdi gelelim Glade’i kullanarak yapıcağımız örnek uygulamacığımıza
Bu bakımdan kamu yararını göze önünde tutarak şöyle Boy Kilo index’ini
hesaplıyan uygulamacık tasarlıyacağız.
Öncelik glade’i açalım
alt+F2 glade
İşte karşımızda ,

Container ana başlığı altından bir kutucuk eklemek ile işe başladık
Gtk araçlarımızı yerleştirdikten sonra şimdi gelelim sinyal yönetmine
Sinyalleri glade üzerindeyken adlandırabilir ve daha sonrası için
uygulamacığımızdan _connect_signals ile ayrrıştırarak gtk aracını yeniden
tanımlamadan kullanabiliriz.
Şimdi gelelim python betiğimizin içeriğine
Öncelikle
gtk kütühanelerini yükleyelim 12.04 ‘ün ruhuna uygun olarak glade gtk3 ‘ün
yapılandırmalarıyla geliyor bu yüzden python için gi deposu üzerinden gtk kütüphanelerini
yüklemek sorun yaşamamamızı sağlıycaktır.

  #!/usr/bin/env python
# -*- coding: utf-8 -*-
# vim: ts=4:sw=4
from gi.repository import Gtk as gtk
#oran adlı bir sınıf oluşturalım ve __init__ değer olarak builder aracını tanımlıyalım,
class oran(gtk.Builder):
    def __init__(self):
        gtk.Builder.__init__(self)
        #şimdi self haznesi üzerinden builder aracını rahatlıkla kullanabiliriz.
        #dosyamızı _add_from_file ile builder'a ekliyelim
        self.add_from_file("./boykilo.glade")
        # hesap işlemleri için gerek duyduğumuz gtk araçlarını 
        # uygulamamıza builder   üzerinden davet edelim ..
        
        self.label = self.get_object("label1")
        self.boy = self.get_object("scale1")
        self.kilo = self.get_object("scale2")
        #Şimdiyse adlandırdığımız sinyal isimlerine fonksiyonlarımızın hangileri
       # olduğu connect_signals ile belirtelim
        self.connect_signals({ "tikla":self.islem ,
                                       "kapat" : gtk.main_quit })
        #pencerimiz gösterilmeye hazır.
        self.get_object("window1").show_all()
        #kabaca basit bir işlemle şimdi hesaplamaya geldi sıra
    def islem(self,data):
        # tanımladığımız gtk araçlarında gerekli boy ve kilo bilgisini 
        # aldıktan sonra bilgilendirme hazır artık ..
        boy = self.boy.get_value()
        kilo = self.kilo.get_value()
        x = boy * boy
        sonuc = float(kilo)/float(x)
        if sonuc > 25:
            while True:
                kilo -= 1.0
                xx = float(kilo)/float(x)
                if xx <= 25:
                    ideal = kilo
                    ver = self.kilo.get_value() - ideal
                    break
            self.label.set_markup(\
"""Boy - Kilo oranınız %s ..
Sağlıklı kilo sınırınız olan 25'i geçmiş durumda.
Sağlıklı bir yaşam için olmanız gereken kilo%s,
Vermeniz gereken kilo ise yaklaşık %s kadar.."""
            % ( str(sonuc)[0:4]  , int(ideal) , int(ver) ) )
        else:
            self.label.set_markup(\
"""Boy - Kilo oranınız  %s ..
Sağlıklı kilo sınırınız olan 25'in altında .."""
            % ( int(sonuc) ) )
oran()
gtk.main()

Python ve C için örneklere ekten ulaşabilirsiniz..
gcc mixer.c -o mixer `pkg-config –libs –cflags gtk+-2.0`
gcc mixer.c -o mixer `pkg-config –libs –cflags gtk+-3.0`

komutları ile c için derleme işlemini gerçekleştirebilirsiniz.

previous arrow
next arrow
Slider
Java’ya Merhaba
Java Teknolojisi nedir ve neden ihtiyacımız olsun? Java bir programlama dili ve bilgi işlem ortamı olarak ilk olarak Sun Microsytem Read more.
PR VS AD? Reklam nedir, ne değildir?
   Shakira, Darth Vader’ı alt etti; Pop yıldızın Activia sponsorlu müzik videosu tüm zamanların en çok paylaşılan reklamına dönüşmesi: bit.ly/1ogx9UW Read more.
Venüste Neden Yaşam Yoktur
     Venüs adını eski roma tanrıçasından alır, eski yunandaysa afrodit aşk ve güzellik tanrıçası, venüsün bir diğer adı ise Read more.
Glade, gtk+ ?
GLADE Glade Nedir? Gtk Builder? Gtk Builder İşlevleri? ÖRNEKLER Glade Nedir? Glade, Gnome Masaüstü ortamına ,GTK+ araçkiti için hızlı ve Read more.
Adım adım “python” ile altyazı editörü
#!/usr/bin/env python # -*- coding: utf-8 -*- # vim: ts=4:sw=4 class srt_editor(): def __init__(self,dosya, sure,durum=False): # kullanıcıdan gelen ana değişkenler Read more.
Parça parça “Crystallizing Public Opinion”
.. the professional concept of public relations has its roots in pirimitive times, though relationship between those who led and Read more.

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir