gocui Go 控制台 UI 开发包 gocui

agolangf • 5249 次点击    
这是一个分享于 的项目,其中的信息可能已经有所发展或是发生改变。
gocui 是一个 Go 语言用来开发控制台应用的 UI 工具包。 主要特性: * 最小化 API. * 视图 (窗口) 实现接口 io.ReadWriter. * 支持重叠视图 * 可在运行时修改 GUI * 全局或者是视图层级的快捷键绑定 * 支持鼠标操作 * 彩色文本输出 * 可定制化的编辑模式 * 易于构建可重用的 UI 部件,复杂的布局等 ## 示例代码 <pre>package main import ( &#34;fmt&#34; &#34;log&#34; &#34;github.com/jroimartin/gocui&#34; ) func main() { g, err := gocui.NewGui(gocui.OutputNormal) if err != nil { log.Panicln(err) } defer g.Close() g.SetManagerFunc(layout) if err := g.SetKeybinding(&#34;&#34;, gocui.KeyCtrlC, gocui.ModNone, quit); err != nil { log.Panicln(err) } if err := g.MainLoop(); err != nil &amp;&amp; err != gocui.ErrQuit { log.Panicln(err) } } func layout(g *gocui.Gui) error { maxX, maxY := g.Size() if v, err := g.SetView(&#34;hello&#34;, maxX/2-7, maxY/2, maxX/2+7, maxY/2+2); err != nil { if err != gocui.ErrUnknownView { return err } fmt.Fprintln(v, &#34;Hello world!&#34;) } return nil } func quit(g *gocui.Gui, v *gocui.View) error { return gocui.ErrQuit }</pre> ## 应用效果 ![image](https://static.oschina.net/uploads/space/2019/0704/123717_r9SO_12.png) ![image](https://static.oschina.net/uploads/space/2019/0704/123727_A6YX_12.png) ![image](https://static.oschina.net/uploads/space/2019/0704/123736_KlS6_12.png)
授权协议:
BSD
开发语言:
Google Go 查看源码»
操作系统:
跨平台
5249 次点击  
加入收藏 微博
1 回复  |  直到
暂无回复
添加一条新回复 (您需要 登录 后才能回复 没有账号 ?)
  • 请尽量让自己的回复能够对别人有帮助
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`
  • 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
  • 图片支持拖拽、截图粘贴等方式上传