中文 | Английский
Крестоплатформенная библиотека Golang GUI, ядро привязывает LIBLCL, общая кроссплатформенная библиотека GUI, созданная Lazarus.
Govcl - это местная библиотека графического интерфейса, не основанная на HTML, не говоря уже о библиотеке DirectUi, все практично.
Полное имя: Go Language Visual Component Library
Минимальное требование GOVCL - GO1.9.2.
Потому что Govcl уже вышел на стабильную стадию и в настоящее время находится в состоянии чистого обслуживания. При нормальных обстоятельствах не будет добавлено новые функции или компоненты. Если нет ошибок, которые необходимо исправить (ссылаясь на ошибки в GovCl), в принципе, новая версия не будет выпущена. 2023/11/20
Скриншоты | Вики (китайский) | Что нового (китайский)
Windows | Linux | macOS
Если вы хотите поддержать Linux Arm и Linux 32Bit, вам необходимо составить соответствующий двоичный файл Liblcl.
Примечание. Этот дизайнер пользовательского интерфейса больше не обновляется, но он не влияет на использование.
Как использовать: метод установки
Примечание: разработан в Лазаре, код, написанный в Голанге.
Go Get -u github.com/ying32/govcl
ПРИМЕЧАНИЕ. Вы также можете использовать режим модуля GO, настраиваться в go.mod, например: 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!" )
}Метод 1 должен использоваться в сочетании с инструментом 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 liblcl.dll
GOARCH = amd64 386 GOOS = windows CGO_ENABLED=0 Linux: копировать liblcl.so в текущем исполнительном каталоге файлов (вы также можете скопировать liblcl.so в /usr/lib/ (32bit liblcl) или /usr/lib/x86_64-linux-gnu/ (64bit liblcl), используемый в качестве публичной библиотеки).
GOARCH = amd64 GOOS = linux CGO_ENABLED=1 MacOS: скопируйте liblcl.dylib в текущий исполнительный каталог файлов (примечание в соответствии с macOS: вам нужно создать файл info.plist самостоятельно) или обратитесь к: упаковке приложения на macOS
GOARCH = amd64 GOOS = darwin CGO_ENABLED=1ПРИМЕЧАНИЕ. «Текущий исполняемый каталог файлов» здесь относится к местоположению исполняемого файла, сгенерированного вашим в настоящее время скомпилированным проектом.
Специальное примечание: все компоненты пользовательского интерфейса являются нетребованными/необработанными безопасными. При использовании в Goroutine используйте vcl.threadsync для синхронизации обновлений в пользовательском интерфейсе.
Специальное примечание 2: Если вы используете go> = 1.15 для компиляции исполняемых файлов Windows, необходимо использовать опцию -buildmode=exe , в противном случае будут ошибки.
В: Почему английского вики нет?
A: Мой английский плохой. Вы можете попробовать использовать Google Translate китайский вики.