最近突发奇想,想实现一款工作节奏的提示安排小闹钟。那首先解决的就是UI。本人擅长go语言。那go在windows ui的探索肯定有人做过了吧。一查还真有,通过知乎,csdn等查到目前支持最好的就是walk库了。那走起试试。
一、拷贝go代码
将官网例子(国内可以找码云)放入文件test.go:
package main
import (
"strings"
"github.com/lxn/walk"
. "github.com/lxn/walk/declarative"
)
func main() {
var inTE, outTE *walk.TextEdit
MainWindow{
Title: "zishen-test",
MinSize: Size{666, 666},
Layout: VBox{},
Children: []Widget{
HSplitter{
Children: []Widget{
TextEdit{AssignTo: &inTE, MaxLength: 10},
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>
</assembly>
二、设置goland环境
从file-》setting
设置goroot为本地go的安装路径
设置gopath,为第一步test.go所在目录的上一级目录。
设置编译的os(windows吧)
三、编译
1、编译前准备
进入目录,设置mod名称,下载依赖。如下图所示。
2、编译rsrc
注意在gopath的pkg目录中,且编译完成后需要将对应的exe放到go的bin目录下,如下所示
编译rsrc文件
3、编译go文件
配置输出路径。我放在和go文件一个目录下
编译:
使用命令go build -ldflags="-H windowsgui"
四、运行
确实运行起来了。后面再优化吧
五、参考
goLang 如何开发 windows 窗口界面