我正在努力在go代码中绘制终端本身的图形。我在golang中找到了这个(https://github.com/gizak/termui)。并使用此(https://github.com/gizak/termui/blob/master/_example/gauge.go)在我的代码中绘制图形。
问题在于,正如我们在代码(https://github.com/gizak/termui/blob/master/_example/gauge.go)中看到的那样,它们将g0,g1,g2,g3一起传递到最后“termui.Render(g0,g1,g2,g3, G4)”。 在我的情况下,我不知道手绘多少量规,所以我使用一个列表存储量规对象,然后尝试传递列表进行渲染。
termui.Render(chartList...)
但它只创造了一个标尺。
这就是我在列表中追加元素的方式。
for i := 0; i < 5; i++ {
g0 := termui.NewGauge()
g0.Percent = i
g0.Width = 50
g0.Height = 3
g0.BorderLabel = "Slim Gauge"
chartList = append(chartList, g0)
}
我得到的只是i = 4的衡量标准。当我在做termui.Render(chartList ...) 难道我做错了什么? PS - 我根据我在这个问题中得到的答案修改了问题。
答案 0 :(得分:1)
查看Render的函数签名https://github.com/gizak/termui/blob/master/render.go#L161
func Render(bs ...Bufferer) {
您需要做的就是
termui.Render(chatList...)
假设chartList
是[]Bufferer
修改强>
你只看到一个,因为他们堆叠在一个彼此之上。要看到这个添加
g0.Height = 3
g0.Y = i * g0.Height // <-- add this line
g0.BorderLabel = "Slim Gauge"
通过对项目的快速回顾,似乎有一些自动排列方法与创建行(可能还有列)有关。所以你可能想要探索它,或者你需要手动定位你的元素。