中文 | 영어
크로스 플랫폼 Golang Gui 라이브러리, 코어 바인딩은 Liblcl입니다.
Govcl은 HTML을 기반으로하는 기본 GUI 라이브러리이며 DirectUi 라이브러리는 물론 모든 것이 실용적입니다.
전체 이름 : Go Language Visual Component Library
GOVCL 최소 요구 사항은 GO1.9.2입니다.
Govcl은 이미 안정적인 단계에 들어갔고 현재 순수한 유지 보수 상태에 있기 때문입니다. 정상적인 상황에서는 새로운 기능이나 구성 요소가 추가되지 않습니다. 고정 해야하는 버그가 없으면 (GOVCL의 버그를 참조) 원칙적으로 새 버전은 해제되지 않습니다. 2023/11/20
스크린 샷 | 위키 (중국어) | 새로운 것 (중국어)
Windows | 리눅스 | 마코스
Linux ARM 및 Linux 32BIT를 지원하려면 해당 LIBLCL 바이너리를 컴파일해야합니다.
참고 :이 UI 디자이너는 더 이상 업데이트되지 않지만 사용에는 영향을 미치지 않습니다.
사용 방법 : 설치 방법
참고 : 나사로로 설계된 골란 랑 (Golang)에서 작성된 코드.
-u github.com/ying32/govcl을 얻으십시오
참고 : github.com/ying32/govcl v2.2.3+incompatible 과 같은 Go.Mod에서 구성 GO MODULE 모드를 사용할 수도 있습니다.
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 : 컴파일 된 바이너리가 32 또는 64 비트인지 여부에 따라 해당 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 아래 참고 : 정보를 직접 만들어야 함).
GOARCH = amd64 GOOS = darwin CGO_ENABLED=1참고 : 여기서 "현재 실행 파일 디렉토리"는 현재 컴파일 된 프로젝트에서 생성 된 실행 파일의 위치를 나타냅니다.
특별 참고 : 모든 UI 구성 요소는 비 스레드/코 루틴이 아닌 안전입니다. Goroutine에 사용될 때 VCL.threadSync를 사용하여 UI에 업데이트를 동기화하십시오.
특별 노트 2 : go> = 1.15를 사용하여 Windows 실행 파일을 컴파일하는 경우 -buildmode=exe 컴파일 옵션을 사용해야합니다. 그렇지 않으면 오류가 발생합니다.
Q : 영어 위키가없는 이유는 무엇입니까?
A : 내 영어는 나쁘다. Google Translate Chinese Wiki를 사용해 볼 수 있습니다.