Walk는 GO 프로그래밍 언어를위한 "Windows Application Library 키트"입니다.
주로 데스크탑 GUI 개발에 유용하지만 더 많은 것들이 있습니다.
작업중인 GO 설치가 있는지 확인하십시오. 시작하기를 참조하십시오
Walk는 현재 1.11.x 이상이 필요합니다.
이제 run go get github.com/lxn/walk
Walk와 함께 GUI를 만드는 선호하는 방법은이 작은 예에서 볼 수 있듯이 선언적 하위 패키지를 사용하는 것입니다.
test.go package main
import (
"github.com/lxn/walk"
. "github.com/lxn/walk/declarative"
"strings"
)
func main () {
var inTE , outTE * walk. TextEdit
MainWindow {
Title : "SCREAMO" ,
MinSize : Size { 600 , 400 },
Layout : VBox {},
Children : [] Widget {
HSplitter {
Children : [] Widget {
TextEdit { AssignTo : & inTE },
TextEdit { AssignTo : & outTE , ReadOnly : true },
},
},
PushButton {
Text : "SCREAM" ,
OnClicked : func () {
outTE . SetText ( strings . ToUpper ( inTE . Text ()))
},
},
},
}. Run ()
}test.manifest 작성하십시오 <? xml version = " 1.0 " encoding = " UTF-8 " standalone = " yes " ?>
< assembly xmlns = " urn:schemas-microsoft-com:asm.v1 " manifestVersion = " 1.0 " >
< assemblyIdentity version = " 1.0.0.0 " processorArchitecture = " * " name = " SomeFunkyNameHere " type = " win32 " />
< dependency >
< dependentAssembly >
< assemblyIdentity type = " win32 " name = " Microsoft.Windows.Common-Controls " version = " 6.0.0.0 " processorArchitecture = " * " publicKeyToken = " 6595b64144ccf1df " language = " * " />
</ dependentAssembly >
</ dependency >
< application xmlns = " urn:schemas-microsoft-com:asm.v3 " >
< windowsSettings >
< dpiAwareness xmlns = " http://schemas.microsoft.com/SMI/2016/WindowsSettings " >PerMonitorV2, PerMonitor</ dpiAwareness >
< dpiAware xmlns = " http://schemas.microsoft.com/SMI/2005/WindowsSettings " >True</ dpiAware >
</ windowsSettings >
</ application >
</ assembly >그런 다음 RSRC 도구를 사용하여 매니페스트를 컴파일하십시오.
go get github.com/akavel/rsrc
rsrc -manifest test.manifest -o rsrc.syso
또는 test.manifest 로 파일을 test.exe.manifest 로 바꾸고 응용 프로그램과 함께 배포하십시오.
test.go run을 포함하는 디렉토리에서
go build
CMD 창을 제거하려면 대신 실행하십시오
go build -ldflags="-H windowsgui"
test.exe
시작해야 할 몇 가지 예가 있습니다.
Walk에는 공통 컨트롤이 필요합니다. 6. 이는 실행 파일 옆에 또는 자원으로 포함 된 적절한 응용 프로그램 Manifest 파일을 넣어야 함을 의미합니다.
예제와 함께 제공되는 응용 프로그램 매니페스트 파일 중 하나를 복사 할 수 있습니다.
매니페스트 파일을 리소스로 포함 시키려면 RSRC 도구를 사용할 수 있습니다.
중요 : 매니페스트를 리소스로 포함시키지 않으면 매니페스트 파일이 마련되기 전에 실행 파일을 시작하지 않아야합니다. 어쨌든 그렇게한다면 프로그램은 제대로 실행되지 않습니다. 더 나쁜 것은 Windows가 매니페스트 파일을 인식하지 못하고 나중에 실행 파일 옆에 떨어집니다. 이 문제를 해결하려면 실행 파일을 재구성하고 매니페스트 파일로만 시작하십시오.
일반적인 기본 메시지 루프에는 Win32 API 함수에 대한 통화가 포함되어있어 GO에서 오는 런타임 오버 헤드가 적습니다. 이에 대한 대안으로, walk_use_cgo 빌드 태그를 전달하여 기본 메시지 루프의 선택적 C 구현을 사용하여 워크를 컴파일 할 수 있습니다.
구축 -tags walk_use_cgo로 이동하십시오