0

我有以下无法编译的代码,它根据按下的按钮显示两组不同的内容。目标是根据选择的按钮(在同一窗口中)以编程方式更改内容。

编译错误在第 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() 
}
4

1 回答 1

0

在定义变量之前,您不能引用它。在引用它之前尝试使用var content1 fyne.CanvasObject(例如)并更改content1 :=为,content1 =以便在知道它后更新它的值。

于 2021-12-12T07:27:38.077 回答