cmd太丑了,所以gui需求比较强烈
用到了andlabs/ui这个库
核心需求:csv导表工具
核心代码:
func ShowGUI() {
err := ui.Main(func() {
// 生成:标签
greeting := ui.NewLabel("导表工具1.0")
// 生成:标签
result := ui.NewLabel("无进程")
// 生成:按钮
button := ui.NewButton("导表")
// 设置:按钮点击事件
button.OnClicked(func(*ui.Button) {
result.SetText("无进程")
button.Hide()
Export()
button.Show()
result.SetText("导出成功")
})
// 生成:垂直容器
box := ui.NewVerticalBox()
// 往 垂直容器 中添加 控件
box.Append(greeting, false)
box.Append(button, false)
box.Append(result, false)
// 生成:窗口(标题,宽度,高度,是否有 菜单 控件)
window := ui.NewWindow(`导表工具1.0 by DongTech`, 360, 240, true)
// 窗口容器绑定
window.SetChild(box)
// 设置:窗口关闭时
window.OnClosing(func(*ui.Window) bool {
// 窗体关闭
ui.Quit()
return true
})
// 窗体显示
window.Show()
})
if err != nil {
panic(err)
}
// 编译go build 不需要显示窗体
// go build -ldflags="-H windowsgui"
}
项目路径:
运行效果如图:
文件大小差了很多倍:
其他:
gui 安装类库
go get github.com/andlabs/libui
go get github.com/andlabs/ui
gcc 安装类库(64位)
https://sourceforge.net/projects/mingw-w64/files/Toolchains%20targetting%20Win32/Personal%20Builds/mingw-builds/installer/mingw-w64-install.exe