如何解决动态更新 fyne 树小部件
需要帮助在运行时更新 Tree 小部件,如此处所建议的 fyne issue 似乎在小部件上使用 Refresh() 函数它将同步存储在 list
地图中的数据更改,这里是代码:
package main
//______________________________________________________________________________
import (
"fyne.io/fyne/v2"
"fyne.io/fyne/v2/app"
"fyne.io/fyne/v2/container"
"fyne.io/fyne/v2/layout"
"fyne.io/fyne/v2/widget"
dbg "github.com/fatih/color"
)
//______________________________________________________________________________
var content *fyne.Container
var tree *widget.Tree
var list map[string][]string
//______________________________________________________________________________
func main() {
myApp := app.New()
myWindow := myApp.NewWindow("List")
makeTree()
top := widget.NewLabel("Items' list::")
bottom := widget.NewButton("Update list",updateList)
content = container.New(layout.NewBorderLayout(top,bottom,nil,nil),top,tree,)
myWindow.SetContent(content)
myWindow.Resize(fyne.NewSize(480,600))
myWindow.ShowAndRun()
}
//______________________________________________________________________________
func makeTree() {
list = map[string][]string{
"": {"A"},"A": {"B","D"},"B": {"C"},"C": {"abc"},"D": {"E"},"E": {"F","G"},}
tree = widget.NewTreeWithStrings(list)
tree.OnSelected = func(id string) {
dbg.Green("Tree node selected: %s",id)
}
tree.OnUnselected = func(id string) {
dbg.Green("Tree node unselected: %s",id)
}
tree.OpenAllBranches()
}
//______________________________________________________________________________
func updateList() {
dbg.Green("UpdateList")
list = map[string][]string{
"": {"A"},"A": {"B"},}
tree.Refresh()
}
谢谢
解决方法
vector v
是一个静态辅助函数,因此不会真正按照您想要的方式进行更新。
如果您可以使用 NewTreeWithStrings
,那么您可以指向您的数据结构,它会自动更新。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。