GO ile GTK uygulaması geliştirme - 1

Ali Orhun Akkirman - Jul 15 '20 - - Dev Community

GO dili ile GTK3 kütüphanesi kullanarak geliştirme yapabilirsiniz.

GOlang uygulamasının kurulumu

Debian tabanlı sistemlerde golang dilini kurabilmek için golang paketini yüklemeniz gerekmektedir. Bu paket kendisi diğer bağımlılıklarını yüklemektedir:

sudo apt install golang
Enter fullscreen mode Exit fullscreen mode

GTK geliştirmek için gerekli paketlerin kurulumu

GOlang paketini yükledikten sonra GTK arayüzü geliştirmek için ise aşağıdaki 3 paketi ve gerekli bağımlılıkları yüklemeniz gerekmektedir:

sudo apt install libgtk-3-dev libcairo2-dev libglib2.0-dev
Enter fullscreen mode Exit fullscreen mode

Güncel GOTK3 kütüphanesini kullanmak

Gerekli paketler kurulduktan sonra komut satırından aşağıdaki komut ile GTK3'ün GO dili bağlayıcısını indirmeniz gerekmektedir:

go get github.com/gotk3/gotk3/gtk
Enter fullscreen mode Exit fullscreen mode

Ve tabi bu adımdan sonra sisteminiz artık GTK ile uygulama geliştirmek için hazır.

Örnek GTK uygulaması inşa etmek

Bu işlem için GOTK3 kütüphanesindeki ilk örneği yapabiliriz. Yorum satırlarını da bilerek kaldırmadım detaylı inceleyebilirsiniz. Bu örnek ve daha fazla örneği ise bu adreste bulabilirsiniz. Aşağıdaki içeriği örneğin ilkornek.go adıyla kaydedebilirsiniz.

package main

import (
    "github.com/gotk3/gotk3/gtk"
    "log"
)

func main() {
    // Initialize GTK without parsing any command line arguments.
    gtk.Init(nil)

    // Create a new toplevel window, set its title, and connect it to the
    // "destroy" signal to exit the GTK main loop when it is destroyed.
    win, err := gtk.WindowNew(gtk.WINDOW_TOPLEVEL)
    if err != nil {
        log.Fatal("Unable to create window:", err)
    }
    win.SetTitle("İlk Örnek Başlık")
    win.Connect("destroy", func() {
        gtk.MainQuit()
    })

    // Create a new label widget to show in the window.
    l, err := gtk.LabelNew("Merhaba gotk3 Dünyası!")
    if err != nil {
        log.Fatal("Unable to create label:", err)
    }

    // Add the label to the window.
    win.Add(l)

    // Set the default window size.
    win.SetDefaultSize(800, 600)

    // Recursively show all widgets contained in this window.
    win.ShowAll()

    // Begin executing the GTK main loop.  This blocks until
    // gtk.MainQuit() is run.
    gtk.Main()
}
Enter fullscreen mode Exit fullscreen mode

Dosyayı kaydettiğiniz yerde aşağıdaki komutu kullanarak inşa edebilirsiniz. Bu komut çıktısında ilkornek adında bir çalıştırılabilir ikili dosya oluşturulmaktadır:

go build ilkornek.go
Enter fullscreen mode Exit fullscreen mode

Uygulamayı çalıştırmak

Oluşturulan ikili dosyayı aşağıdaki gibi çalıştırarak "Merhaba gotk3 Dünyası!" yazısını görebilirsiniz:

./ilkornek
Enter fullscreen mode Exit fullscreen mode

Alt Text

Nihil novi sub sole

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .