Dalam pengaturcaraan bahasa Go, menutup tetingkap mungkin merupakan tugas biasa. Untuk aplikasi GUI, apabila pengguna mengklik butang tutup, kami perlu menangkap acara dalam program dan melakukan operasi yang sepadan, seperti menyimpan data, mengesahkan penutupan, dsb. Dalam artikel ini, kita akan membincangkan cara menutup tetingkap dalam bahasa Go.
Pertama, kita perlu menggunakan beberapa perpustakaan GUI untuk mencipta tetingkap dan mengendalikan acara. Pada masa ini, perpustakaan GUI paling popular dalam bahasa Go termasuk fyne, gotk3, qt, dsb. Kami akan menggunakan perpustakaan fyne sebagai contoh. Fyne ialah rangka kerja GUI berasaskan Go moden untuk membina aplikasi desktop dan mudah alih yang mudah digunakan, cekap dan merentas platform. Sebelum anda memulakan, pastikan anda memasang perpustakaan fyne Anda boleh memasangnya di terminal menggunakan arahan berikut:
go get fyne.io/fyne
Buat tetingkap
Sebelum menggunakan perpustakaan fyne, kita perlu memahami. asasnya. Pada akhirnya, setiap aplikasi mempunyai objek App, yang merupakan objek teras dalam aplikasi. Aplikasi yang dipanggil "Hello World" boleh dibuat menggunakan arahan berikut:
app := fyne.NewApp("Hello World")
Seterusnya, kita perlu mencipta objek tetingkap. Tetingkap boleh dibuat menggunakan arahan berikut:
win := app.NewWindow("My Window")
Ini akan mencipta tetingkap yang dipanggil "Tetingkap Saya". Sekarang kita boleh menambah beberapa kandungan pada tetingkap. Sebagai contoh, kita boleh menambah komponen label sebagai tajuk tetingkap:
title := widget.NewLabel("My Window") win.SetTitleBar(widget.NewVBox(title))
Aplikasi GUI adalah dipacu peristiwa, dan fyne tidak terkecuali. Seterusnya, kita perlu menambah pengendali acara rapat untuk tetingkap.
Tangkap acara tutup
Dalam perpustakaan fyne, kita boleh menambah pengendali acara CloseRequest untuk setiap tetingkap. Peristiwa ini dicetuskan apabila pengguna mengklik butang tutup. Kami boleh menambah pengendali acara CloseRequest menggunakan kod berikut:
win.SetOnClosed(func() { fmt.Println("Window closed") })
Apabila pengguna mengklik butang tutup, fungsi panggil balik akan dilaksanakan dan kami boleh melakukan beberapa operasi yang diperlukan di sini, seperti menyimpan data, menutup sambungan rangkaian, dsb. Dalam contoh ini, kami hanya mencetak mesej ke konsol: "Tetingkap ditutup".
Kod lengkap adalah seperti berikut:
package main import ( "fmt" "fyne.io/fyne" "fyne.io/fyne/widget" ) func main() { // 创建应用程序 app := fyne.NewApp("Hello World") // 创建窗口 win := app.NewWindow("My Window") // 添加标题 title := widget.NewLabel("My Window") win.SetTitleBar(widget.NewVBox(title)) // 添加CloseRequest事件处理程序 win.SetOnClosed(func() { fmt.Println("Window closed") }) // 显示窗口 win.ShowAndRun() }
Apabila program dijalankan, tetingkap bernama "My Window" akan dipaparkan. Apabila butang Tutup diklik, mesej "Tetingkap tertutup" dikeluarkan ke konsol.
Kesimpulan
Artikel ini memperkenalkan cara menutup tetingkap dalam bahasa Go. Kami mencipta aplikasi GUI menggunakan perpustakaan fyne dan menambah pengendali acara CloseRequest pada tetingkap. Apabila pengguna mengklik pada butang tutup, fungsi panggil balik dilaksanakan di mana kita boleh melakukan beberapa operasi yang diperlukan. Dengan menguasai asas ini, kita boleh membina aplikasi GUI yang lebih kompleks.
Atas ialah kandungan terperinci golang tutup tingkap. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!