我有下面的代码,它不会编译,根据按下的按钮显示两组不同的内容。目标是根据所选按钮(在同一窗口中(以程序方式更改内容。
编译错误出现在第19行和第27行,表示content1和content2未定义。
问题解决方案比修复编译错误更重要!
package main
import (
"fmt"
"fyne.io/fyne/v2"
"fyne.io/fyne/v2/app"
"fyne.io/fyne/v2/container"
"fyne.io/fyne/v2/widget"
)
func main() {
myApp := app.New()
myWindow := myApp.NewWindow("Hello")
myWindow.Resize(fyne.NewSize(500, 600))
label1 := widget.NewLabel("You are in content 1")
button1 := widget.NewButton("Button 1",
func() {
fmt.Println("tapped button1")
myWindow.SetContent(content2)
myWindow.Show()
})
label2 := widget.NewLabel("You are in content 2")
button2 := widget.NewButton("Button 2",
func() {
fmt.Println("tapped button2")
myWindow.SetContent(content1)
myWindow.Show()
})
content1 := container.NewVBox(
label1,
button1,
)
content2 := container.NewVBox(
label2,
button2,
)
myWindow.SetContent(content1)
myWindow.ShowAndRun()
}
在定义变量之前不能引用它。尝试在引用var content1 fyne.CanvasObject
之前使用它(例如(,并将content1 :=
更改为content1 =
,以便在知道它后更新它的值。