环境:go fyne
实现:在窗口的按钮中,点击按钮弹出第二窗口,并且窗口居中
注意:创建的第一个窗口和第二个窗口必须是通过同一个
myApp := app.New()创建出来的
效果:
实现:
1 package main 2 3 import ( 4 "fmt" 5 6 "fyne.io/fyne/v2" 7 "fyne.io/fyne/v2/app" 8 "fyne.io/fyne/v2/container" 9 "fyne.io/fyne/v2/layout" 10 "fyne.io/fyne/v2/widget" 11 ) 12 13 func main() { 14 myApp := app.New() 15 // 新建窗口 16 myWindow := myApp.NewWindow("Button Widget") 17 18 // 创建按钮 19 content := widget.NewButton("click me", func() { 20 fmt.Println("点击按钮创建第二个窗口") 21 newWin := myApp.NewWindow("new") 22 label := widget.NewLabel("hello") 23 newWin.SetContent(label) 24 newWin.Resize(fyne.NewSize(200, 200)) 25 newWin.CenterOnScreen() 26 newWin.Show() 27 }) 28 29 // 垂直布局 30 // 因为只有一个按钮,按钮会占满整个窗口,使用布局可以避免这个情况 31 grid := container.New(layout.NewVBoxLayout(), content) 32 33 //窗口添加内容 34 myWindow.SetContent(grid) 35 // 窗口大小 36 myWindow.Resize(fyne.NewSize(500, 500)) 37 //窗口居中 38 myWindow.CenterOnScreen() 39 myWindow.ShowAndRun() 40 }