中文 | Inglês
Biblioteca Golang Golang de plataforma cruzada, a encadernação principal é a LiblCl, uma biblioteca GUI comum de plataforma cruzada criada por Lázaro.
O GovCl é uma biblioteca da GUI nativa, não baseada no HTML, e muito menos na Biblioteca Diretor, tudo é prático.
Nome completo: Go Language Visual Component Library
O requisito mínimo do GOVCL é GO1.9.2.
Porque o GovCl já entrou em um estágio estável e está atualmente em um estado de pura manutenção. Em circunstâncias normais, não serão adicionados novos recursos ou componentes. Se não houver erros que precisam ser corrigidos (referindo -se aos bugs no GovCl), em princípio, uma nova versão não será lançada. 2023/11/20
Capturas de tela | Wiki (chinês) | O que é novo (chinês)
Windows | Linux | macos
Se você deseja oferecer suporte ao Linux ARM e Linux 32bits, precisará compilar o binário liblc correspondente.
Nota: Este designer de interface do usuário não é mais atualizado, mas não afeta o uso.
Como usar: método de instalação
Nota: Projetado em Lázaro, código escrito em Golang.
vá obter -u github.com/ying32/govcl
Nota: Você também pode usar o modo Go Module, configurar no 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!" )
}O método 1 precisa ser usado em conjunto com a ferramenta 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: Dependendo se o binário compilado é de 32 ou 64 bits, copie o liblcl.dll correspondente para o diretório de arquivos executável atual ou o caminho do ambiente do sistema.
GOARCH = amd64 386 GOOS = windows CGO_ENABLED=0 Linux: copie liblcl.so no diretório de arquivos executáveis atual (você também pode copiar o diretório liblcl.so para /usr/lib/ (32bit libl) ou /usr/lib/x86_64-linux-gnu/ (64bit Libl), usado como uma biblioteca pública).
GOARCH = amd64 GOOS = linux CGO_ENABLED=1 MacOS: Copie liblcl.dylib para o diretório de arquivos executáveis atual (Nota em MacOS: você precisa criar info.plist arquivar você mesmo) ou consulte: embalagem de aplicativos no macOS
GOARCH = amd64 GOOS = darwin CGO_ENABLED=1Nota: O "diretório de arquivo executável atual" aqui refere -se à localização do arquivo executável gerado pelo seu projeto atualmente compilado.
NOTA ESPECIAL: Todos os componentes da interface do usuário são seguros não-thread/não corutinos. Quando usado em Goroutine, use o vcl.threadsync para sincronizar atualizações na interface do usuário.
NOTA ESPECIAL 2: Se você usar Go> = 1.15 para compilar arquivos executáveis do Windows, deverá usar a opção de compilação -buildmode=exe , caso contrário, haverá erros.
P: Por que não há wiki inglês?
A: Meu inglês é ruim. Você pode tentar usar o Google Translate Wiki chinês.