功能说明: 1、通过该库实现了文本输入 2、通过该库实现了按键点击 3、通过该库实现了文本展示 4、通过该库实现了多行说明 代码展示: package main import ( "crypto/md5" "encoding/hex" "github.
功能说明:
1、通过该库实现了文本输入
2、通过该库实现了按键点击
3、通过该库实现了文本展示
4、通过该库实现了多行说明
代码展示:
package main
import (
"crypto/md5"
"encoding/hex"
"github.com/andlabs/ui"
_ "github.com/andlabs/ui/winmanifest"
"time"
)
var explain string = `使用说明
1、这是一个测试工具
`
func main() {
err := ui.Main(func() {
box := ui.NewVerticalBox()
date := ui.NewGroup("输入年月日时(2021080109)")
date.SetMargined(true)
dateentry := ui.NewEntry()
date.SetChild(dateentry)
output := ui.NewGroup("加密")
output.SetMargined(true)
outentry := ui.NewEntry()
outentry.SetReadOnly(true)
output.SetChild(outentry)
button := ui.NewButton("生成密码")
button.OnClicked(func(button *ui.Button) {
date := dateentry.Text()
str := ""
defer func(str *string) {
outentry.SetText(*str)
}(&str)
if date == "" {
str = "输入框不能为空"
return
}
_, err := time.Parse("2006010215", date)
if err != nil {
str = "date格式不正确,请检查!"
return
}
if len(date) != 10 {
str = "输入时间长度不对,请检查!"
return
}
pwd, err := md5Test1(date)
if err != nil {
str = "发生未知错误!"
return
}
str = pwd
})
text := ui.NewMultilineEntry()
text.Append(explain)
text.SetReadOnly(true)
box.Append(date, false)
box.Append(button, false)
box.Append(output, false)
box.Append(text, true)
window := ui.NewWindow("Test Tool", 500, 300, false)
window.SetChild(box)
window.OnClosing(func(*ui.Window) bool {
ui.Quit()
return true
})
window.SetMargined(true)
window.Show()
})
if err != nil {
panic(err)
}
}
//使用md5对字符串进行加密
func md5Test1(str string) (string,error) {
m5 := md5.New()
_,err := m5.Write([]byte(str))
if err != nil {
return "",err
}
md5String := hex.EncodeToString(m5.Sum(nil))
return md5String,nil
}
编译命令
SET GOOS=windows
SET GOARCH=amd64
go build -ldflags "-H windowsgui" -o test.exe main.go
@echo "end"
pause