Kalbur
Yerleşim bileşenleri, kablar
Eğer daha önce yaptığımız etiket uygulamasına bir etiket daha eklerseniz, uygulamayı çalıştırdığınızda bir pencereye ikinci bir etiket ekleyemediğinizi görebilirsiniz.
Gtk kütüphanesi diğer bileşenleri içine koyabileceğimiz çeşitli yerleşim bileşenleri, kablar içeriyor. Şimdi bunlardan kalburu göreceğiz.
Kalbur kaynak kodu
Çalışma dizinimizde kalbur.d isimli bir kaynak dosyası oluşturup içine şunları girelim :
import gtk.Main;
import gtk.MainWindow;
import gtk.Label;
import gtk.Grid;
class Pencere : MainWindow
{
this()
{
super("Kalbur örneği");
setDefaultSize(200, 100);
setPosition(GtkWindowPosition.CENTER_ALWAYS);
// Üç tane etiket oluştur
Label etiketSolÜst = new Label("Bu sol üstte olacak");
Label etiketSağAlt = new Label("Bu etiket sağ üstte olacak");
Label etiketAlt = new Label("Bu alt tarafta olacak");
Grid kalbur = new Grid();
kalbur.setColumnSpacing(20);
kalbur.setRowSpacing(20);
kalbur.attach(etiketSolÜst, 0, 0, 1, 1);
kalbur.attach(etiketSağAlt, 1, 0, 1, 1);
kalbur.attachNextTo(etiketAlt, etiketSolÜst,
GtkPositionType.BOTTOM, 2, 1);
add(kalbur);
showAll();
}
}
void main(string[] seçenekler)
{
Main.init(seçenekler);
Pencere pencere = new Pencere();
Main.run();
}
Burada 3 tane etiket oluşturuyor ve bunları kalbura koyuyoruz. Elemanların arasındaki boşluğu da 20 olarak ayarladık.
Programı derleyip çalıştıralım
$ dmd `pkg-config --cflags --libs gtkd-3` kalbur.d
Programı bu komutla derleyebilirsiniz. Çalıştırmak için ./kalbur yazabilirsiniz.
Programın ekran görüntüsü aşağıda görebilirsiniz :
Kalbur üzerindeki elemanlar nasıl yerleşiyor?
Şimdi sizlere kalbur üzerindeki elemanların nasıl yerleştiğinden bahsetmek istiyorum.
Dikkat ederseniz
attach
işlevinde ilk parametre ile hangi elemanın yerleşeceğini bildiriyoruz. 2 ve 3. parametreler ise yerleşecek elemanın sol üst köşesinin koordinatları. 4 ve 5 ise genişlik ve yüksekliği belirtiyor.
Yukarıdaki resme bakarsak yeşille gösterilen etiketi (0, 0) noktasına, kavun içiyi de (1, 0) noktasına yerleştiriyoruz. Eğer ilk yazdığımız kodu incelerseniz aynı şeyleri görebilirsiniz.
attachNextTo
işlevi ise alt etiketi, sol üst etiketin altına yerleştirmenizi söylüyor.Başka bir örnek
import gtk.Main;
import gtk.MainWindow;
import gtk.Label;
import gtk.Grid;
import std.string;
class Pencere : MainWindow
{
this()
{
super("Kalbur örneği");
setDefaultSize(150, 150);
setPosition(GtkWindowPosition.CENTER_ALWAYS);
// Üç tane etiket oluştur
string ilk = "Bir bir bir bir bir bir "
~ "bir bir bir bir bir bir bir bir";
string ikinci ="İki iki iki iki iki "
~ "iki iki iki iki iki iki iki iki";
string üçüncü = "Üç üç üç üç üç üç "
~ "üç üç üç üç üç üç üç";
Label bir = new Label(ilk);
bir.setLineWrap(true);
Label iki = new Label(ikinci);
iki.setLineWrap(true);
Label üç = new Label(üçüncü);
üç.setLineWrap(true);
Grid kalbur = new Grid();
kalbur.setColumnSpacing(5);
kalbur.setRowSpacing(5);
kalbur.attach(bir, 0, 0, 2, 2);
kalbur.attach(iki, 0, 2, 3, 1);
kalbur.attach(üç, 2, 0, 1, 2);
add(kalbur);
showAll();
}
}
void main(string[] seçenekler)
{
Main.init(seçenekler);
Pencere pencere = new Pencere();
Main.run();
}
Programı çalıştırdığımızda şuna benzer bir ekran görüntüsü görebilirsiniz.
Eğer alttaki resmi incelerseniz, kod ile aynı koordinatları gösterdiğini görebilirsiniz.
Bu koordinat sistemini kullanarak kalbur üzerinde elemanları istediğiniz gibi yerleştirebilirsiniz.
Yorumlar
Yorum Gönder