从0搭建go+walk界面应用开发程序
第一步:安装GO-SDK
1.1,下载sdk
从官网下载SDK:
进入https://golang.google.cn/dl/
点击 download
或者直接使用浏览器或迅雷下载笔者自己上传的SDK:
http://zxjianlin.com:8082/files/go1.17.5.windows-amd64.msi
1.2,下载完成后,右键安装
1.3,打开cmd,运行
go env -w GOPROXY=https://goproxy.cn,direct
1.4,再运行
go env -w GO111MODULE=on
第二步:安装goland并破解
2.1,下载goland
从官网下载最新版(无法破解):
进入https://www.jetbrains.com/go/
点击download
从官网下载历史版本(可以破解):
进入https://www.jetbrains.com/zh-cn/go/download/other.html
往下拉选择 2020.3.5 - Windows (exe)版本
点击则下载
或者直接使用浏览器或迅雷下载笔者自己上传的goland:
http://zxjianlin.com:8082/files/goland-2020.3.5.exe
2.2,选择安装包,安装goland,并重启电脑
2.3,进入goland,选择试用
2.4,下载破解工具
http://zjxianlin.com:8082/files/ide-eval-resetter-2.1.13.zip
2.5,建个项目demo,建立一个main.go文件,把下载破解文件zip拖入代码编辑区域。
2.6.勾选上图红框区域,并点击reload
2.7. Files->Setting->Go->GOROOT 设置GoSDK的安装目录
2.8. Files->Setting->Go->Go Modules勾选Enable Go modules Integration
2.9.New Projects Settings->Settings for New Projects->Go->GOROOT 设置GoSDK的安装目录
2.10..New Projects Settings->Settings for New Projects->Go->Go Modules勾选Enable Go modules Integration
第三步,搭建Walk环境
3.1,文件浏览器跑到当前项目的根目录,右键单击->在此处打开powershell,输入 go mod init 并回车运行。如果项目根目录存在go.mod则跳过该项。
3.2,回到goLand,在go.mod加入以下内容
require (
github.com/akavel/rsrc v0.10.2
github.com/lxn/walk v0.0.0-20210112085537-c389da54e794
github.com/lxn/win v0.0.0-20210218163916-a377121e959e // indirect
golang.org/x/sys v0.0.0-20211216021012-1d35b9e2eb4e // indirect
gopkg.in/Knetic/govaluate.v3 v3.0.0 // indirect
)
3.3,goland左键选择go.mod文件,右键单击,运行 Sync Go module
3.4,安装rsrc
3.5,goland找到如图所示文件,右键github.com/akavel/rsrc,选择Open In->Terminal,输入go build,回车运行,生成rsrc.exe
3.6.复制rsrc.exe到%go安装目录%/bin/ 目录下
3.7.OK.walk环境搭建完毕
第四步,测试
4.1,打开main.go 写入:
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 ( )
}
4.2.在main.go的所在目录新建demo.mainifest文件,并写入
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
< assembly xmlns = " urn:schemas-microsoft-com:asm.v1" manifestVersion = " 1.0" xmlns: asmv3= " urn:schemas-microsoft-com:asm.v3" >
< 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>
< asmv3: application>
< asmv3: windowsSettings xmlns = " http://schemas.microsoft.com/SMI/2005/WindowsSettings" >
< dpiAware> true</ dpiAware>
</ asmv3: windowsSettings>
</ asmv3: application>
</ assembly>
4.3.在项目根目录左键单击选中,右键单击->选择Open In->Terminal,然后输入:rsrc -manifest demo.manifest -o rsrc.syso
4.4.再接着输入:go build -ldflags="-H windowsgui"
4.5.OK,根目录已经生成可执行的exe程序了。
4.6.从文件浏览器进入exe程序所在目录,右键选择以管理员身份运行。就会有桌面窗口了。
4.7.体验demo
git clone https://gitcode.net/mirrors/lxn/walk.git
goLand打开项目
复制之前的go.mod进入项目根目录。
goland左键选中go.mod,右键单击,选择 Sync Go module
goland左键选中go.mod,右键单击,选择 Go Mod Tidy
4.8.进入example目录,
选择项目进行 go build -ldflags="-H windowsgui"
然后运行体验吧