fyne更新GUI内容
实现一个时钟界面,每秒钟更新一次。
package main
import (
"fyne.io/fyne/v2/app"
"fyne.io/fyne/v2/widget"
"time"
)
func updateTime(label *widget.Label) {
formatted := time.Now().Format("2006-01-02 15:04:05")
label.SetText(formatted)
}
func asyncUpdate(label *widget.Label) {
// 每隔一秒修改一次
for range time.Tick(time.Second) {
updateTime(label)
}
}
func main() {
a := app.New()
w := a.NewWindow("Clock")
label := widget.NewLabel("")
updateTime(label)
w.SetContent(label)
go asyncUpdate(label)
w.ShowAndRun()
}
w.SetContent(label),将label传入window,可以理解为将label放入window容器,后面只需更新label的内容即可,label.SetText()修改label显示内容。
只需要起一个协程定时执行label.SetText()修改label内容即可。
效果图: