GtkD ile Görsel Programlama
Mengü Kağan ve Can Alpay Çiftçi



İngilizce Kaynaklar


Diğer




Merhaba GtkD

Bu dersimizde gtkD ile pencere oluşturabilmek için gerekli modülleri öğreneceğiz.

En basit pencere, içi boş penceredir. İlk önce içi boş bir pencere nasıl oluşturulur onu öğreneceğiz. Sizce bir pencere oluşturmak için neler yapmak gerekir? Hızlıca düşünürsek:

  1. Gtk işlevlerini kullanmadan önce bir işlev çağırmamız gerekiyorsa o işlevi çağırmalıyız. (Sizce gerek var mıdır :o) )
  2. Pencere oluştur demeliyiz.
  3. Pencereyi göster demeliyiz.
  4. Bu yaptıklarımızı çalıştır demeliyiz.

Bunları sağlayan kod parçacığı aşağıda :

import gtk.Window;
import gtk.Main;

int main(string[] args)
{
    Main.init(args);
    auto pencere = new Window("deneme");
    pencere.show();
    Main.run;

    return 0;
}

Örneğimizde neler yaptık bakalım:

İlk olarak iki tane modülü programımıza dahil ettik. Bunlar gtk.Window ve gtk.Main. Sonra D'nin ana işlevi olan main işlevini tanımladık. Ama burada main işlevini tanımlarken string[] türünde bir argüman tanımladık. Burada argümanın hangi türden tanımlandığı önemlidir.

Şimdi sıra tanımlanan argümanı kullanmaya geldi. Dersimizin ilk bölümlerinde pencereleri oluşturmadan önce; daha doğrusu gtk'nin işlevlerini kullanmadan önce başka bir işlev çağırmamız gerektiğinden söz etmiştik. Bu işlevi her gtk uygulamasında çağırmamız gerekir. Şimdi bu işlev hangi modülde bulunur, adı nedir, parametre alır mı, alırsa hangi türden parametre alır gibi soruların yanıtlarını alacağız.

Tanıyacağımız ilk işlev, Main.init. Bu işlev gtk.Main modülünde bulunuyor. Parametre olarak da D uygulamasının ana işlevini tanımlarken kullandığımız argümanı kullanıyor. Ve parametre türü olarak da sadece string[] türü kabul ediyor. Kısaca:

void Main.init (string[] args);

Gtk işlevlerini kullanmak için gtk.Main modülünde bulunan Main.init işlevini kullandıktan sonra sıra penceremizi oluşturmaya geldi. Pencereyi oluşturabilmek için ilk önce gtk.Window modülündeki Window sınıfını kuruyoruz. Bunun için şu satırı yazmıştık :

    auto pencere = new Window("deneme");

Koddan anlaşıldığı üzere bu sınıfın kurucusu tanımlı ve parametre türü olarak string değer alıyor. Kurucudaki parametre, oluşturacağımız pencerenin başlığını tanımlar.

Artık uygulamamızın sonuna doğru geldik. Bundan sonraki işlev yine gtk.Window modülünde tanımlı. Daha önce pencere adı ile kurduğumuz sınıfın show işlevine erişiyoruz. Show sözcüğünün Türkçe anlamı görüntüle, göster demektir. Biz de oluşturduğumuz pencereyi göstermek için pencere.show; kodunu yazıyoruz.

Ve sonunda bu gtk uygulamasını çalıştırmak için gtkD ile ilişkili olan son kod satırımızı yazıyoruz. Bu kod satırında gtk uygulamasını çalıştır anlamına gelen Main.run; kodunu yazıyoruz. Bu kod parçası yine gtk.Main modülünde bulunuyor.

Peki Bu GtkD Kodlarını Nasıl Çalıştıracağız?

Bu örneği merhaba.d adında çalışma alanınıza kaydettikten sonra şu şekilde derleyebilirsiniz:

dmd merhaba.d -I/gtkD/yolu/src -L-ldl -L-L/gtkD/yolu/src -L-lgtkd

Yukarıda dikkat etmeniz gereken kısım “/gtkD/yolu” kısmıdır ki onu gtkD'yi nereye kurduysanız, o yol (path) şeklinde değiştirmeniz gerekmektedir. Örneğin ben ~/projects/gtkD klasörü altında kurduğum için şu şekilde derledim:

dmd merhaba.d -I~/projects/gtkD/src -L-ldl -L-L~/projects/gtkD/src -L-lgtkd

merhaba.d dosyasını derledikten sonra da terminalde ./merhaba yazarak pencerenizi görebilirsiniz.