中文 | Bahasa inggris
Perpustakaan Cross-Platform Golang GUI, pengikatan inti adalah liblcl, perpustakaan GUI lintas platform umum yang dibuat oleh Lazarus.
GOVCL adalah perpustakaan GUI asli, bukan berdasarkan HTML, apalagi perpustakaan Directui, semuanya praktis.
Nama Lengkap: Go Language Visual Component Library
Persyaratan minimum GOVCL adalah GO1.9.2.
Karena GOVCL telah memasuki tahap stabil dan saat ini dalam keadaan pemeliharaan murni. Dalam keadaan normal, tidak ada fitur atau komponen baru yang akan ditambahkan. Jika tidak ada bug yang perlu diperbaiki (mengacu pada bug di GOVCL), pada prinsipnya, versi baru tidak akan dirilis. 2023/11/20
Screenshot | Wiki (Cina) | What's baru (Cina)
Windows | Linux | MacOS
Jika Anda ingin mendukung Linux Arm dan Linux 32bit, Anda perlu mengkompilasi biner LIBLCL yang sesuai.
Catatan: Perancang UI ini tidak lagi diperbarui, tetapi tidak mempengaruhi penggunaan.
Cara menggunakan: metode instalasi
Catatan: Dirancang dalam Lazarus, kode yang ditulis dalam Golang.
Go Get -u github.com/ying32/govcl
Catatan: Anda juga dapat menggunakan mode modul GO, konfigurasi di go.mod, seperti: github.com/ying32/govcl v2.2.3+incompatible .
package main
import (
// Do not reference this package if you use custom syso files
_ "github.com/ying32/govcl/pkgs/winappres"
"github.com/ying32/govcl/vcl"
)
type TMainForm struct {
* vcl. TForm
Btn1 * vcl. TButton
}
type TAboutForm struct {
* vcl. TForm
Btn1 * vcl. TButton
}
var (
mainForm * TMainForm
aboutForm * TAboutForm
)
func main () {
vcl . Application . Initialize ()
vcl . Application . SetMainFormOnTaskBar ( true )
vcl . Application . CreateForm ( & mainForm )
vcl . Application . CreateForm ( & aboutForm )
vcl . Application . Run ()
}
// -- TMainForm
func ( f * TMainForm ) OnFormCreate ( sender vcl. IObject ) {
}
func ( f * TMainForm ) OnBtn1Click ( sender vcl. IObject ) {
aboutForm . Show ()
}
// -- TAboutForm
func ( f * TAboutForm ) OnFormCreate ( sender vcl. IObject ) {
}
func ( f * TAboutForm ) OnBtn1Click ( sender vcl. IObject ) {
vcl . ShowMessage ( "Hello!" )
}Metode 1 perlu digunakan bersama dengan alat RES2GO.
package main
import (
// Do not reference this package if you use custom syso files
_ "github.com/ying32/govcl/pkgs/winappres"
"github.com/ying32/govcl/vcl"
)
type TMainForm struct {
* vcl. TForm
Btn1 * vcl. TButton
}
type TAboutForm struct {
* vcl. TForm
Btn1 * vcl. TButton
}
var (
mainForm * TMainForm
aboutForm * TAboutForm
)
func main () {
vcl . RunApp ( & mainForm , & aboutForm )
}
// -- TMainForm
func ( f * TMainForm ) OnFormCreate ( sender vcl. IObject ) {
f . SetCaption ( "MainForm" )
f . Btn1 = vcl . NewButton ( f )
f . Btn1 . SetParent ( f )
f . Btn1 . SetBounds ( 10 , 10 , 88 , 28 )
f . Btn1 . SetCaption ( "Button1" )
f . Btn1 . SetOnClick ( f . OnBtn1Click )
}
func ( f * TMainForm ) OnBtn1Click ( sender vcl. IObject ) {
aboutForm . Show ()
}
// -- TAboutForm
func ( f * TAboutForm ) OnFormCreate ( sender vcl. IObject ) {
f . SetCaption ( "About" )
f . Btn1 = vcl . NewButton ( f )
//f.Btn1.SetName("Btn1")
f . Btn1 . SetParent ( f )
f . Btn1 . SetBounds ( 10 , 10 , 88 , 28 )
f . Btn1 . SetCaption ( "Button1" )
f . Btn1 . SetOnClick ( f . OnBtn1Click )
}
func ( f * TAboutForm ) OnBtn1Click ( sender vcl. IObject ) {
vcl . ShowMessage ( "Hello!" )
} Windows: Bergantung pada apakah biner yang dikompilasi adalah 32 atau 64 bit, salin liblcl.dll yang sesuai ke direktori file yang dapat dieksekusi saat ini atau jalur lingkungan sistem.
GOARCH = amd64 386 GOOS = windows CGO_ENABLED=0 Linux: Salin liblcl.so di bawah direktori file yang dapat dieksekusi saat ini (Anda juga dapat menyalin liblcl.so to /usr/lib/ (32bit liblcl) atau /usr/lib/x86_64-linux-gnu/ (64bit liblcl), digunakan sebagai perpustakaan umum).
GOARCH = amd64 GOOS = linux CGO_ENABLED=1 MacOS: Salin liblcl.dylib ke direktori file yang dapat dieksekusi saat ini (Catatan di bawah macOS: Anda perlu membuat file info.plist sendiri), atau merujuk ke: Kemasan Aplikasi di MacOS
GOARCH = amd64 GOOS = darwin CGO_ENABLED=1Catatan: "Direktori File yang Dapat Dieksekusi Saat Ini" di sini mengacu pada lokasi file yang dapat dieksekusi yang dihasilkan oleh proyek Anda yang saat ini dikompilasi saat ini.
CATATAN KHUSUS: Semua komponen UI tidak aman/non-koroutine aman. Saat digunakan di goroutine, gunakan vcl.threadsync untuk menyinkronkan pembaruan ke UI.
Catatan Khusus 2: Jika Anda menggunakan Go> = 1.15 untuk mengkompilasi file Windows yang dapat dieksekusi, Anda harus menggunakan opsi kompilasi -buildmode=exe , jika tidak akan ada kesalahan.
T: Mengapa tidak ada wiki bahasa Inggris?
A: Bahasa Inggris saya buruk. Anda dapat mencoba menggunakan Google Translate Chinese Wiki.