Gowid 项目教程
1. 项目的目录结构及介绍
Gowid 项目的目录结构如下:
gowid/
├── examples/
│ ├── hello_world.go
│ ├── palette_example.go
│ ├── graph_example.go
│ ├── fibonacci_example.go
│ ├── terminal_widget_example.go
│ └── termshark_animation.go
├── widgets/
│ ├── button.go
│ ├── checkbox.go
│ ├── editable_text.go
│ ├── divider.go
│ ├── pile.go
│ ├── styled.go
│ ├── text.go
│ ├── vpadding.go
│ └── ...
├── gowid.go
├── README.md
├── LICENSE
└── ...
目录结构介绍
examples/
:包含多个示例文件,展示了如何使用 Gowid 库创建不同的终端用户界面。widgets/
:包含各种小部件的实现文件,如按钮、复选框、可编辑文本等。gowid.go
:Gowid 库的主文件,定义了核心功能和接口。README.md
:项目的介绍文档,包含安装、使用和示例等信息。LICENSE
:项目的许可证文件。
2. 项目的启动文件介绍
Gowid 项目的启动文件通常是 examples/
目录下的示例文件。以下是 hello_world.go
文件的介绍:
package main
import (
"github.com/gcla/gowid"
"github.com/gcla/gowid/widgets/divider"
"github.com/gcla/gowid/widgets/pile"
"github.com/gcla/gowid/widgets/styled"
"github.com/gcla/gowid/widgets/text"
"github.com/gcla/gowid/widgets/vpadding"
)
func main() {
palette := gowid.Palette{
"bg": gowid.MakePaletteEntry(gowid.ColorBlack, gowid.ColorWhite),
}
outside := styled.New(divider.NewBlank(), gowid.MakePaletteRef("bg"))
inside := styled.New(divider.NewBlank(), gowid.MakePaletteRef("bg"))
helloworld := styled.New(text.New("Hello, World!"), gowid.MakePaletteRef("bg"))
view := styled.New(
vpadding.New(
pile.New([]gowid.IContainerWidget{
&gowid.ContainerWidget{IWidget: outside, D: gowid.RenderWithUnits{U: 1}},
&gowid.ContainerWidget{IWidget: inside, D: gowid.RenderWithUnits{U: 1}},
&gowid.ContainerWidget{IWidget: helloworld, D: gowid.RenderWithUnits{U: 1}},
&gowid.ContainerWidget{IWidget: inside, D: gowid.RenderWithUnits{U: 1}},
&gowid.ContainerWidget{IWidget: outside, D: gowid.RenderWithUnits{U: 1}},
}),
gowid.VAlignMiddle{},
gowid.RenderFlow{},
),
gowid.MakePaletteRef("bg"),
)
app, _ := gowid.NewApp(gowid.AppArgs{
View: view,
Palette: &palette,
})
app.SimpleMainLoop()
}
启动文件介绍
hello_world.go
:展示了如何使用 Gowid 库创建一个简单的 "Hello, World!" 界面。- 导入必要的包:包括 Gowid 核心库和各种小部件。
- 定义调色板:用于设置界面的颜色方案。
- 创建小部件:包括
outside
、inside
和helloworld
。 - 组合小部件:使用
pile
和vpadding
将小部件组合成最终的视图。 - 创建应用实例:使用
gowid.NewApp
创建应用实例并启动主循环。