Rumah > pembangunan bahagian belakang > Golang > Bagaimana untuk membina gtk di golang

Bagaimana untuk membina gtk di golang

PHPz
Lepaskan: 2023-04-25 13:56:13
asal
1426 orang telah melayarinya

Ikhtisar

Apabila Golang menjadi semakin popular, semakin ramai orang cuba menggunakan Golang untuk membina aplikasi desktop. Gtk ialah kit alat popular untuk mencipta GUI merentas platform. Artikel ini akan memperkenalkan cara menggunakan Golang dan Gtk untuk membina aplikasi GUI dengan cepat dan menunjukkan penggunaan beberapa kawalan Gtk asas.

Langkah 1: Pasang Gtk

Tugas pertama yang perlu diselesaikan ialah memasang Gtk3, ini boleh dilakukan dalam pelbagai cara, tetapi berikut ialah cara memasangnya pada sistem Ubuntu atau Debian:

 $ sudo apt-get update
 $ sudo apt-get install libgtk-3-dev
Salin selepas log masuk

Langkah 2: Pasang pakej berkaitan

Untuk menggunakan Golang untuk menulis aplikasi Gtk, anda perlu memasang pakej berikut:

 $ go get -u github.com/gotk3/gotk3/gtk
 $ go get -u github.com/gotk3/gotk3/glib
 $ go get -u github.com/gotk3/gotk3/cairo
Salin selepas log masuk

Langkah 3: Cipta fungsi Utama

Seterusnya, anda perlu mencipta fungsi utama untuk menentukan tingkap, bingkai dan lain-lain yang perlu dibuat. Berikut ialah contoh fungsi Utama yang ringkas:

 package main

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

 func main() {
  // 初始化 Gtk
  gtk.Init(nil)

  // 创建新的窗口
  win, err := gtk.WindowNew(gtk.WINDOW_TOPLEVEL)
  if err != nil {
    log.Fatal("无法创建窗口:", err)
  }

  // 设置窗口的标题
  win.SetTitle("我的第一个Golang Gtk应用程序")

  // 设置窗口的大小
  win.SetDefaultSize(800, 600)

  // 显示窗口
  win.Show()

  // 进入主循环
  gtk.Main()
 }
Salin selepas log masuk

Dalam contoh ini, tugas paling penting bagi fungsi Utama ialah mencipta tetingkap peringkat atas baharu menggunakan gtk.WindowNew. Fungsi ini memerlukan parameter gtk.WindowType untuk menentukan jenis tetingkap. Dalam kes ini, kita hanya perlu menentukan gtk.WINDOW_TOPLEVEL sebagai parameter ini, yang akan mencipta tetingkap mudah tanpa bar menu dan bar alat.

Setelah tetingkap dibuat, kita boleh menggunakan win.SetTitle dan win.SetDefaultSize untuk menetapkan tajuk dan saiz tetingkap. Akhir sekali, kami menggunakan win.Show untuk memaparkan tetingkap pada skrin. Juga ambil perhatian bahawa kami memanggil gelung gtk.Main() pada penghujungnya, yang akan memastikan tetingkap terbuka sehingga pengguna menutupnya.

Langkah 4: Buat Kotak

Sekarang, kami telah mencipta tetingkap mudah, tetapi ia adalah kanvas kosong. Kita perlu menambah beberapa kawalan pada tetingkap untuk mengatur paparan dengan lebih baik. Dalam Gtk ini boleh dilakukan dengan mudah dengan menambahkan kawalan pada Kotak.

Gtk menyediakan empat jenis kotak yang berbeza: GtkBox, GtkHBox, GtkVBox dan GtkFrame. GtkBox ialah kotak asas yang boleh digunakan untuk mengatur kawalan secara mendatar atau menegak. GtkHBox dan GtkVBox hanyalah untuk melaksanakan susun atur mendatar dan menegak biasa. GtkFrame ialah kotak khas yang boleh memberikan label dan bayang-bayang.

Berikut ialah contoh menambahkan GtkBox pada tetingkap baharu:

 func main() {
     gtk.Init(nil)
     win, err := gtk.WindowNew(gtk.WINDOW_TOPLEVEL)
     if err != nil {
         log.Fatal("无法创建窗口:", err)
     }
     win.SetTitle("我的第一个Golang Gtk应用程序")
     win.SetDefaultSize(800, 600)

     // 创建容器
     box, err := gtk.BoxNew(gtk.ORIENTATION_VERTICAL, 4)
     if err != nil {
         log.Fatal("无法创建盒子", err)
     }

     // 向盒子添加一个标签
     label, err := gtk.LabelNew("Hello, Golang!")
     if err != nil {
         log.Fatal("无法创建标签", err)
     }
     box.PackStart(label, true, true, 0)

     // 显示窗口和盒子
     win.Add(box)
     box.ShowAll()
     win.Show()
     gtk.Main()
 }
Salin selepas log masuk

Dalam contoh ini, kami mula-mula mencipta kotak menegak. Menggunakan gtk.BoxNew, kami menentukan gtk.ORIENTATION_VERTICAL dan menetapkan parameter kedua kepada 4 untuk menentukan jarak antara item dalam kotak. Seterusnya, kami mencipta label baharu, menambahnya pada kotak dan akhirnya menetapkan teks label.

Langkah terakhir ialah menunjukkan tetingkap dan kotak. Kami menambah kotak pada tetingkap menggunakan kaedah win.Add dan tunjukkan semua elemen dalam kotak menggunakan kaedah box.ShowAll().

Langkah 5: Tambah butang

Selain label, Gtk juga menyokong pelbagai kawalan, seperti butang, kotak teks dan senarai lungsur turun. Mari tambahkan butang pada tetingkap kami. Berikut ialah contoh menambah butang pada tetingkap:

 func main() {
     gtk.Init(nil)
     win, err := gtk.WindowNew(gtk.WINDOW_TOPLEVEL)
     if err != nil {
         log.Fatal("无法创建窗口:", err)
     }
     win.SetTitle("我的第一个Golang Gtk应用程序")
     win.SetDefaultSize(800, 600)

     box, err := gtk.BoxNew(gtk.ORIENTATION_VERTICAL, 4)
     if err != nil {
         log.Fatal("无法创建盒子", err)
     }

     button, err := gtk.ButtonNewWithLabel("点击我!")
     if err != nil {
         log.Fatal("无法创建按钮", err)
     }

     button.Connect("clicked", func() {
         log.Println("按钮被点击了!")
     })

     box.PackStart(button, false, false, 0)

     win.Add(box)
     box.ShowAll()
     win.Show()
     gtk.Main()
 }
Salin selepas log masuk

Dalam contoh ini, kami mula-mula mencipta butang baharu, menggunakan gtk.ButtonNewWithLabel dan tetapkan teks butang itu kepada "Klik saya!" Kami kemudian menyambungkan pengendali acara dan butang akan mengeluarkan mesej kepada konsol setiap kali pengguna mengklik butang.

Akhir sekali, kami menambah butang pada tetingkap, menetapkan parameter kedua kepada palsu untuk menunjukkan tidak meregangkan kawalan dan menggunakan kotak.Kaedah PackStart untuk menambah nilai "piksel" spacer.

Langkah Enam: Tambah Imej

Akhir sekali, kami akan menambah imej pada tetingkap kami, ini boleh dilakukan dengan mudah dengan menggunakan GtkImage. Berikut ialah contoh menambahkan imej pada tetingkap:

 func main() {
     gtk.Init(nil)
     win, err := gtk.WindowNew(gtk.WINDOW_TOPLEVEL)
     if err != nil {
         log.Fatal("无法创建窗口:", err)
     }
     win.SetTitle("我的第一个Golang Gtk应用程序")
     win.SetDefaultSize(800, 600)

     box, err := gtk.BoxNew(gtk.ORIENTATION_VERTICAL, 4)
     if err != nil {
         log.Fatal("无法创建盒子", err)
     }

     button, err := gtk.ButtonNewWithLabel("点击我!")
     if err != nil {
         log.Fatal("无法创建按钮", err)
     }

     button.Connect("clicked", func() {
         log.Println("按钮被点击了!")
     })

     box.PackStart(button, false, false, 0)

     // 加载图像文件
     img, err := gtk.ImageNewFromFile("test.png")
     if err != nil {
        log.Fatal("无法加载图像", err)
     }

     box.PackStart(img, false, false, 0)

     win.Add(box)
     box.ShowAll()
     win.Show()
     gtk.Main()
 }
Salin selepas log masuk

Dalam contoh ini, kami mula-mula mencipta butang dan menambahkannya pada kotak. Seterusnya, kami memuatkan fail test.png yang terletak pada sistem fail tempatan dan mencipta contoh GtkImage baharu menggunakan gtk.ImageNewFromFile. Akhir sekali, kami menambah imej pada kotak kami menggunakan kaedah kotak.PackStart.

Kesimpulan

Gtk ialah kit alat GUI yang popular yang boleh digunakan untuk mencipta aplikasi GUI merentas platform. Sangat mudah untuk menulis aplikasi Gtk menggunakan Golang kerana Golang menyediakan banyak pakej pihak ketiga untuk menyokong penggunaan Gtk. Dalam artikel ini, kami memperkenalkan cara menggunakan Golang dan Gtk untuk mencipta tetingkap, menambah kawalan biasa seperti kotak, butang dan imej. Saya berharap melalui artikel ini, anda boleh mula menulis aplikasi GUI dengan mudah menggunakan Golang dan Gtk.

Atas ialah kandungan terperinci Bagaimana untuk membina gtk di golang. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan