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

Bu blogdaki popüler yayınlar