Create Go App tipBar
这是一个任务栏工具开发框架,它基于 Golang 开发。任务栏跨平台实现基于systray
提示弹窗输入框等组件基于zenity,采用模块集成,快来开发属于你的任务栏工具吧。
⚡️ 快速开始
在你的项目中添加依赖
go get github.com/danbai225/tipbar
main.go
package main
import (
logs "github.com/danbai225/go-logs"
"github.com/danbai225/tipbar/core"
"github.com/danbai225/tipbar/example/module/hello"
"os"
)
func main() {
var a *core.App
var err error
//指定配置文件参数 默认读取当前文件夹下config.json
if len(os.Args) > 1 {
a, err = core.NewApp(os.Args[1])
} else {
a, err = core.NewApp()
}
if err != nil {
logs.Err(err)
return
}
//注册模块
a.RegisterModule(
hello.ExportModule(),
)
err = a.Run()
if err != nil {
logs.Err(err)
return
}
}
config.json
{
"module": {
"hello": {
"enable": true,
"config": null
}
},
"http_port": 7989,
"logs_dir": "./logs"
}
其中 module.hello
是模块名,enable
是false
或不存在都不会启用这个模块
logs
是日志输出目录 采用 github.com/danbai225/go-logs
作为日志输出
运行
- 根据上面快速开始构建一个项目
- 使用本项目demo运行,拉去项目后进入项目目录执行
cd example && go run main.go
运行后日志会输出一些 http
路由,任务栏会出现一个图标点击会显示注册的模块。
开发文档
模块
辅助操作
zenity.Info("你好") //提示框
items, err := zenity.ListItems("请选择", "321", "123") //选择框
if err == nil {
logs.Info(items)
}
file, err := zenity.SelectFile() //文件选择
if err == nil {
logs.Info(file)
}
progress, err := zenity.Progress() //进度条
progress.Text("下载中")
for i := 0; i <= 100; i++ {
_ = progress.Value(i)
time.Sleep(time.Millisecond * 100)
if progress.MaxValue() == i {
_ = progress.Close()
}
}
entry, err := zenity.Entry("请输入用户名") //输入框
if err == nil {
logs.Info(entry)
}
模块注册按键事件
model.RegEvent()