我无法用 tview 更新文本
I cannot update text with tview
我在 Go 语言中使用 tview。
我想用下面的代码在终端上显示“hoge”,但是没有显示。
package main
import (
"fmt"
"github.com/rivo/tview"
)
func main() {
tui := newTui()
tui.Run()
tui.WriteMessage("hoge")
}
type Tui struct {
app *tview.Application
text *tview.TextView
}
func (t *Tui) Run() {
t.app.Run()
}
func (t *Tui) WriteMessage(message string) {
fmt.Fprintln(t.text, message)
}
func newTui() *Tui {
text := tview.NewTextView()
app := tview.NewApplication()
app.SetRoot(text, true)
text.SetChangedFunc(func() { app.Draw() })
tui := &Tui{app: app, text: text}
return tui
}
我不想更新 newTui()
函数中的文本。
如何让它显示出来?
Run
starts the application and thus the event loop. This function
returns when Stop()
was called.
即程序中的语句 tui.WriteMessage("hoge")
永远不会到达,因为 Run()
不会 return 直到明确停止。因此要在终端中看到 hoge
打印,您必须在 Run()
.
之前调用 tui.WriteMessage("hoge")
func main() {
tui := newTui()
tui.WriteMessage("hoge")
tui.Run()
}
我在 Go 语言中使用 tview。
我想用下面的代码在终端上显示“hoge”,但是没有显示。
package main
import (
"fmt"
"github.com/rivo/tview"
)
func main() {
tui := newTui()
tui.Run()
tui.WriteMessage("hoge")
}
type Tui struct {
app *tview.Application
text *tview.TextView
}
func (t *Tui) Run() {
t.app.Run()
}
func (t *Tui) WriteMessage(message string) {
fmt.Fprintln(t.text, message)
}
func newTui() *Tui {
text := tview.NewTextView()
app := tview.NewApplication()
app.SetRoot(text, true)
text.SetChangedFunc(func() { app.Draw() })
tui := &Tui{app: app, text: text}
return tui
}
我不想更新 newTui()
函数中的文本。
如何让它显示出来?
Run
starts the application and thus the event loop. This function returns whenStop()
was called.
即程序中的语句 tui.WriteMessage("hoge")
永远不会到达,因为 Run()
不会 return 直到明确停止。因此要在终端中看到 hoge
打印,您必须在 Run()
.
tui.WriteMessage("hoge")
func main() {
tui := newTui()
tui.WriteMessage("hoge")
tui.Run()
}