我想使用文件对话框来选择一个目录以供在Go中进一步使用。要选择目录,我正在使用 Fyne 文件对话框,因为应用程序的其余部分也使用 Fyne。我设法创建了一个简单的测试应用程序:
package main
import (
"fmt"
"fyne.io/fyne/v2"
"fyne.io/fyne/v2/app"
"fyne.io/fyne/v2/container"
"fyne.io/fyne/v2/dialog"
"fyne.io/fyne/v2/widget"
)
var save_dir string = "NoPathYet!"
func chooseDirectory(w fyne.Window) string {
dialog.ShowFolderOpen(func(dir fyne.ListableURI, err error) {
if err != nil {
dialog.ShowError(err, w)
return
}
if dir != nil {
fmt.Println(dir.Path())
save_dir = dir.Path() // here value of save_dir shall be updated!
}
fmt.Println(save_dir)
}, w)
return save_dir
}
func main() {
a := app.New()
w := a.NewWindow("FileDialogTest")
hello := widget.NewLabel("Hello Fyne!")
w.SetContent(container.NewVBox(
hello,
widget.NewButton("Go Get Directory!", func() {
hello.SetText(chooseDirectory(w)) // Text of hello updated by return value
}),
))
w.Resize(fyne.NewSize(500, 500))
w.ShowAndRun()
}
它不能正常工作,标签hello在返回值之前更新,不知何故......
当按钮“去获取目录!” 单击函数chooseDirectory应调用,返回值应设置为hello -Label 中的文本。
我是 Golang 新手,所以对于更有经验的 Go 程序员来说,我的问题可能很愚蠢。无论如何,我将不胜感激!
提前致谢,
文兹