中文 | Inglés
Biblioteca de GUI de Golang Crossplatform, la unión del núcleo es LiblCl, una biblioteca de GUI multiplataforma común creada por Lázaro.
Govcl es una biblioteca de GUI nativa, no basada en HTML, y mucho menos a la biblioteca directa, todo es práctico.
Nombre completo: Go Language Visual Component Library
El requisito mínimo de GOVCL es GO1.9.2.
Porque GoVCL ya ha entrado en una etapa estable y actualmente se encuentra en un estado de mantenimiento puro. En circunstancias normales, no se agregarán nuevas características o componentes. Si no hay errores que necesiten ser solucionados (refiriéndose a los errores en GoVCL), en principio, no se lanzará una nueva versión. 2023/11/20
Capturas de pantalla | Wiki (chino) | ¿Qué es nuevo (chino)?
Windows | Linux | macosa
Si desea admitir Linux Arm y Linux 32bit, debe compilar el binario LIBLCL correspondiente.
Nota: Este diseñador de UI ya no se actualiza, pero no afecta el uso.
Cómo usar: método de instalación
Nota: Diseñado en Lázaro, código escrito en Golang.
Ve a conseguir -u github.com/ying32/govcl
Nota: También puede usar el modo del módulo GO, configurar en Go.mod, como: 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!" )
}El método 1 debe usarse junto con la herramienta 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: dependiendo de si el binario compilado es de 32 o 64 bits, copie las liblcl.dll correspondientes al directorio de archivos ejecutable actual o la ruta de entorno del sistema.
GOARCH = amd64 386 GOOS = windows CGO_ENABLED=0 Linux: Copie liblcl.so en el directorio de archivos ejecutable actual (también puede copiar liblcl.so a /usr/lib/ (32 bits LiblCl) o /usr/lib/x86_64-linux-gnu/ (64bit liblcl), utilizado como una biblioteca pública).
GOARCH = amd64 GOOS = linux CGO_ENABLED=1 MacOS: Copie liblcl.dylib en el directorio de archivos ejecutable actual (nota en MacOS: necesita crear el archivo info.plist usted mismo) o consulte: Embalaje de aplicaciones en macOS
GOARCH = amd64 GOOS = darwin CGO_ENABLED=1Nota: El "directorio de archivos ejecutables actuales" aquí se refiere a la ubicación del archivo ejecutable generado por su proyecto actualmente compilado.
Nota especial: Todos los componentes de la interfaz de usuario no son seguros/no coroutinas. Cuando se use en Goroutine, use VCL.ThreadSync para sincronizar las actualizaciones de la interfaz de usuario.
Nota especial 2: si usa GO> = 1.15 para compilar archivos ejecutables de Windows, debe usar la opción de compilación -buildmode=exe , de lo contrario habrá errores.
P: ¿Por qué no hay wiki inglés?
A: Mi inglés es malo. Puede intentar usar Google Translate Wiki chino.