Gtkd başlangıç

Kalbur

Bu derste diğer elemanları içine koymak için kullandığımız yerleşim bileşenlerinden kalburu öğreneceğiz.

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 ekran görüntüsü 1

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.

Kalbur üzerinde elemanların yerleşimi

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.

Kalbur kullanımı

Eğer alttaki resmi incelerseniz, kod ile aynı koordinatları gösterdiğini görebilirsiniz.

Kalbur üzerinde elemanların yerleşimi

Bu koordinat sistemini kullanarak kalbur üzerinde elemanları istediğiniz gibi yerleştirebilirsiniz.

Yorumlar

yorum yaz

Yorum yaz

Henüz yorum yok.