http://esiyo.net - uordek.essiyoo.each { |yazi| esiyo.net << yazi }

Ruby ile GUI Toolkits - 1

21.01.2007, yazan Tankut ŞENTÜRK

Merhabalar,

Bu yazımızda Ruby ile yazdığımız programlara bir arabirim eklemek istersek ne gibi alternatifler var, avantajları ne, dezavantajları ne gibi sorulara cevap arayacağız. Umarım buluruz ;)
Ruby özgür ve açık kaynak kodlu olmasından dolayı, görüntü arabirimi küyüphanesinde birkaç alternatif mevcut. Bunlardan başlıcaları; Tk, Ruby/GTK, Ruby/Qt, wxRuby, FxRuby/Fox ve VRuby şeklinde sıralanabilir.

Hepsi ile birer tane örnek yapmak istiyorum, ama bu yazıda sadece bir tane yapabilirim ;) Ben derim ki listenin en kolayından başlayalım,
VRuby
Sadece Windows işletim sistemi için bir kütüphanedir. Windows için Ruby kurulumu olan One-Click Ruby Installer ile beraber gelir. Herhangi bir şekilde ekstra kurulum yapmaya gerek yoktur. Proje ile ilgili dökümantasyon çok kötü olmamasına rağmen oldukça azdır. Fakat bu sayfa başlangıç sayfası olarak kullanılabilir. Kütüphaneyi yapan kişiler Visual Basic kadar basit olması gerektiğine karar vermiş ve bu yöndede çok güzel ve önemli adımlar atmışlardır. Kütüphanenin kolay olan kullanımı ve 'One-Click Ruby Installer' ile birlikte gelmesi, Ruby programlarının Windows versiyonları için çok iyi bir avantaj olarak göze çarpar. Form Designer'ı ve CHM dökümantasyonu ve bir çok örneği mevcut olan VRuby, Windows için gerçekten çok güçlü bir alternatiftir.

Örneğimizi verecek olursak;

require 'vr/vruby'
require "vr/vrcontrol"
require "vr/vrlayout"
require "vr/vrcomctl"
require "vr/vrhandler"

class SinamaForm <VRForm
    # Kapatma işleminin yakalanmasi için.
    include VRClosingSensitive
   
    # Form'un yapıcısı, işlemler ve üzerinde elementler eklenir.
    def construct
        self.sizebox=false
        self.maximizebox=false
        self.caption = 'Sınama'
        self.move(410,247,355,157)
        addControl(VRButton,'sayHello',"Merhaba !",40,56,120,32)
        addControl(VRStatic,'static1',"Kullanıcı Adı :",40,16,96,24)
        addControl(VRButton,'close',"Çıkış",216,56,64,40)
        addControl(VREdit,'userName',"",136,16,144,24)
    end
 
    # "Çıkış" methodu tıklandığında çalışır.
    def close_clicked
        # 4: MB_YESNO, 32: MB_ICONQUESTION   
        r = messageBox("Emin misin ?", self.caption, 4 + 32)
        self.close if r == 6 # Form'u kapatır. self_close çalışmaz.
    end
 
    # "self.close" dışındaki kapatma işlemlerinde çalışır.
    def self_close
        # 4: MB_YESNO, 32: MB_ICONQUESTION
        r = messageBox("Emin misin ?", self.caption, 4 + 32)
        SKIP_DEFAULTHANDLER if r != 6 # 6: ID_YES
    end
    # "Merhaba" method'u tıklandığında çalışır.
    def sayHello_clicked
        messageBox("Merhaba, #{@userName.text}..!", self.caption)
    end
end

VRLocalScreen.showForm SinamaForm
VRLocalScreen.messageloop

Kod kendisini anlatacak kadar basit ve sade.. bu nedenle herhangi bir açıklama yazma gereği duymuyorum. Çalıştırdıktan sonra ekranda;

vruby01.JPG

vruby02.JPG
bu arabirimleri görürüz. Neden "Çıkış", "Merhaba" dan daha uzun diye sormayın ;)

Kolay gelsin..

Bağlı olduğu kategoriler; Bilgisayar, Ruby (Ruby on Rails)

Sadece bir yorum

  1. prit

    makaleler için teşekkürederim.

Yaz aklındakini, çekinme :)

Lütfen: Yorumunuzun değerlendirilmesi ve yayınlanması uzun sürebilir. Yorumunuzu tekrar göndermeniz için bir neden yoktur, inanın tüm yorumları yayınlıyorum. Bazıları hariç :).