我无法用 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()函数中的文本。


我如何让它显示出来?


侃侃尔雅
浏览 103回答 1
1回答

慕工程0101907

func (*Application) Run():Run启动应用程序,从而启动事件循环。该函数在Stop()被调用时返回。tui.WriteMessage("hoge")即永远不会到达程序中的语句,因为Run()直到显式停止才会返回。hoge因此,要在终端中看到打印,您必须tui.WriteMessage("hoge") 先 Run()调用.func main() {     tui := newTui()     tui.WriteMessage("hoge")     tui.Run()}
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go