Bagaimana untuk membina gtk di golang
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
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
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() }
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() }
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() }
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() }
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!

Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

AI Hentai Generator
Menjana ai hentai secara percuma.

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas



Artikel ini menerangkan cara menggunakan alat PPROF untuk menganalisis prestasi GO, termasuk membolehkan profil, mengumpul data, dan mengenal pasti kesesakan biasa seperti CPU dan isu memori.

Artikel ini membincangkan ujian unit menulis di GO, meliputi amalan terbaik, teknik mengejek, dan alat untuk pengurusan ujian yang cekap.

Artikel ini menunjukkan penciptaan dan stub di GO untuk ujian unit. Ia menekankan penggunaan antara muka, menyediakan contoh pelaksanaan mengejek, dan membincangkan amalan terbaik seperti menjaga mocks fokus dan menggunakan perpustakaan penegasan. Articl

Artikel ini meneroka kekangan jenis adat Go untuk generik. Ia memperincikan bagaimana antara muka menentukan keperluan jenis minimum untuk fungsi generik, meningkatkan keselamatan jenis dan kebolehgunaan semula kod. Artikel ini juga membincangkan batasan dan amalan terbaik

Artikel ini membincangkan pakej GO's Reflect, yang digunakan untuk manipulasi kod runtime, bermanfaat untuk siri, pengaturcaraan generik, dan banyak lagi. Ia memberi amaran tentang kos prestasi seperti pelaksanaan yang lebih perlahan dan penggunaan memori yang lebih tinggi, menasihati penggunaan yang bijak dan terbaik

Artikel ini meneroka menggunakan alat pengesanan untuk menganalisis aliran pelaksanaan aplikasi GO. Ia membincangkan teknik instrumentasi manual dan automatik, membandingkan alat seperti Jaeger, Zipkin, dan OpenTelemetry, dan menonjolkan visualisasi data yang berkesan

Artikel ini membincangkan menggunakan ujian yang didorong oleh jadual di GO, satu kaedah yang menggunakan jadual kes ujian untuk menguji fungsi dengan pelbagai input dan hasil. Ia menyoroti faedah seperti kebolehbacaan yang lebih baik, penurunan duplikasi, skalabiliti, konsistensi, dan a

OpenSSL, sebagai perpustakaan sumber terbuka yang digunakan secara meluas dalam komunikasi yang selamat, menyediakan algoritma penyulitan, kunci dan fungsi pengurusan sijil. Walau bagaimanapun, terdapat beberapa kelemahan keselamatan yang diketahui dalam versi sejarahnya, yang sebahagiannya sangat berbahaya. Artikel ini akan memberi tumpuan kepada kelemahan umum dan langkah -langkah tindak balas untuk OpenSSL dalam sistem Debian. Debianopenssl yang dikenal pasti: OpenSSL telah mengalami beberapa kelemahan yang serius, seperti: Kerentanan Pendarahan Jantung (CVE-2014-0160): Kelemahan ini mempengaruhi OpenSSL 1.0.1 hingga 1.0.1f dan 1.0.2 hingga 1.0.2 versi beta. Penyerang boleh menggunakan kelemahan ini untuk maklumat sensitif baca yang tidak dibenarkan di pelayan, termasuk kunci penyulitan, dll.
