一、golang环境
Go 1.11.x or later
二、安装walk
go get github.com/lxn/walk
三、安装rsrc
运行walk程序需要manifest,rsrc提供了这个功能
go install github.com/akavel/rsrc
安装完成后在GOPATH的bin下面会有一个rsrc.exe的可执行文件
在idea的termial输入rsrc会出现如下信息
四、编写manifest
<?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>
五、生成rsrc.syso
rsrc -manifest gui.manifest -o rsrc.syso
会出现一个rsrc.syso文件
六、编写HelloWorld
package main
import (
"github.com/lxn/walk/declarative"
"log"
)
func main() {
mw := declarative.MainWindow{
Title:"this is title",
Size: declarative.Size{Width:500,Height:500},
Layout:declarative.VBox{MarginsZero:true},
Children: []declarative.Widget{
declarative.TextLabel{Text:"Hello Walk!!!"},
},
}
_, err := mw.Run()
if err != nil{
log.Println("启动出错",err)
}
}
直接运行main方法不能成功,会报一个 TTM_ADDTOOL failed的错误
1、修改IDEA的运行方式
如果想在idea里面启动运行需要改下执行配置,默认是go build main.go,编译时他不会把生成的rsrc.syso文件包含进去
将其改成文件夹形式
再次运行
2. 在Terminal中go build 生成exe,双击exe
这种方式不方便调试