28 Ekim 2010 Perşembe

QT Designer ile Ruby Uygulaması

Özgürlük İçin... Pardus...
At Ölür Meydan Kalır, Yiğit Ölür Şan Kalır. Dikkat et sen gidince meydan kalmasın!
(Bana söylenmiş özlü söz)
Uzun bir aradan sonra yine yazmaya başlayacağım galiba. Ayrı kaldığım zamanda bayağı bir kriz pozisyonlarına girdim. Ekonomik önlem paketleri yapıp kurtaracaz inşallah. Bilgisayarımın son göçüşünden sonra artık herşeyimi Pardus'a geçirdim. İş haricinde Windows'la pek görüşmeme kararı aldım. Bu kararda en büyük katkı Pardus'un kullanım kolaylığı. Pardus , diğer bütün Linux işletim sistemleri içinde bana göre en kullanışlı olanı. Kullanması çok kolay, programları yüklemesi, kaldırması tam bana göre , tembel işi. Yerli olduğu için mi bana güzel geliyor bilmem ama dünyada böyle bir işletim sistemi olan nadir ülkelerden biri olduğumuz için emeği geçen herkese teşekkür ederim. 2011 versiyon da yakında geliyor, hadi hayırlısı.
Bu günlerde Ruby ile masaüstü programı hazırlarken neler kullanabileceğimi inceliyorum. QtRuby ile QtDesigner birlikte kullanımı araştırdım, öğrendiklerimden bir bukle yapayım başkalarına da faydası olur belki.
Qt Tasarımcı, programınızın görsel arabirimini Qt kütüphanesi ile kolayca hazırlayabileceğimiz bir program. Bu çalışmada öncelikle Qt Tasarımcı'nın kendi tutorial'ından başladım. 

Yeni Form ekranında, widget seçerek başlıyoruz :

 
Form üzerine 3 tane label, 3 tane spinbox, 3 tane vertical slider'ı aşağıdaki şekilde ekrana yerleştirelim. Label yazılarını değiştirmek için çift tıklamak yeterlidir.


Bu widget'ların düzgün yerleşmesini sağlamak için bir layout üzerinde birleştirmemiz gerekiyor. Bunun için ilk grubu Ctrl tuşu eşliğinde tıklayarak seçelim ve sağ tuş tıklayıp yerleşim seçeneklerinden ızgara içine yerleştir seçimini tıklayalım. Resimde dikkat ettiyseniz "Izagara" yazmışlar, küçük bir hata (orjinal dilde seçenek "Lay Out in a Grid") .



Üç grubun hepsine aynı yerleşim birleştirmesini yapalım. Sonra elde ettiğimiz 3 grubu form içersine bir ana yerleşim içine yerleştirmemiz gerekiyor. 3 grubun dışında form üzerine sağ tıklayıp yerleşimden "Yatay Olarak Yerleştir" seçelim az evvelki gibi "Izagara İçerisine Yerleştir" de seçebiliriz. En son şu hale gelecektir :


Yan taraftaki "Object Inspector" penceresinde bu yerleşimlerin Layout'lar olarak nasıl yerleştiğine dikkat edin. Eğer form ana yerleşimi doğru seçilmişse form boyutunu kenarlarından çekerek değiştirdiğimizde grupların boyutları da orantılı olarak değişecektir. Gerçek görüntünün neye benzediğini görmek için Ctrl+R tuşuyla preview olarak formu görebiliriz.
Şimdi sıra nesnelerin çalışmalarını birbirine bağlamaya geldi. Slider değişince spinbox içeriğinin de paralelinde değişmesini istiyoruz. Tam tersi spinbox değeri değişince slider değerinin de değişmesini istiyoruz. Bu amaçla slider'ın valueChanged() SIGNAL'ini, spinbox'ın setValue() SLOT'una bağlamamız gerekiyor. Tam tersi spinbox'ın valueChanged() SIGNAL'ini, slider'ın setValue() SLOT'una bağlamamız gerekiyor. Bu amaçla ilk önce Sinyal/Slot Düzenle seçeriz ya da F4 tuşa basarız. Form görüntüsü bir değişir, widget'ların üzerinden mouse gezdirince kırmızı renklendirmeler görürüz. Slider üzerinde tıklayalım ve parmağımızı kaldırmadan spinbox üzerine sürükleyelim ve bırakalım. "Configure Connection" penceresi açılacaktır.


Sol tarafta valueChanged(int) sinyalini seçelim, sağ taraf aktif olacaktır. Sağ tarafta setValue(int) slotu seçelim ve tamam tıklayalım. Şimdi de tersini yapıp spinbox'tan slider'a bir bağlantı kuralım ve aynı şeyleri seçelim. 3 grubun hepsine aynı işlemleri yapalım, işimiz bitince çalışmamızı kaydedelim ve Ctrl+R basıp bağlantının çalışmasını gözleyelim.
Bu değerleri biz RGB renk oluşturmada kullanacağımıza göre değerlerin 0-255 arasında değişmesi gerekir. Bunun için slider ve spinboxların özelliklerini "Property Editor" penceresinde inceleyip maximum özelliklerini 99 dan 255 e değiştirelim.
Eeee! Ruby nerde ? Şimdi, gezginle ".ui" uzantılı dosyamızın bulunduğu klasöre gidelim ve komut penceresi çalıştıralım (Shift+F4). Açılan pencerede :
rbuic4 -x -o first.rb first.ui
komutunu girelim. "-o" çıkışta first.rb dosyası oluşturulması için, "-x" bu dosyanın direk çalıştırılabilir olması için. Komut sonucunda "first.rb" dosyası oluştuğunu görmüşsek işimiz tamamlandı. Bu Ruby dosyasını çalıştıralım ve inceleyelim, editörde açalım ve oluşturulan kodları inceleyelim. Ne güzel program yazdık ama di mi?

Hoşçakalın...

Hiç yorum yok:

Yorum Gönder