golang fyne 创建两个窗口,窗口居中。点击按钮显示第二个窗口 myApp.NewWindow("new")

发布时间 2023-09-18 17:45:43作者: 芹菜是一根葱

环境: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 }