当前位置 : 主页 > 网络编程 > PHP >

Go语言学习日记【十九】GUI入门-andlabs/ui库

来源:互联网 收集:自由互联 发布时间:2023-10-08
功能说明: 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

界面展示:

Go语言学习日记【十九】GUI入门-andlabs/ui库_输入框

上一篇:linux 特殊权限位说明
下一篇:没有了
网友评论