fyne窗口处理
调整大小和位置
可以通过调用Window.Resize()方法来设置更大的尺寸,由于各种桌面或平台的限制,结果可能并不完全如所期望的那样。传入fyne.Size传入像素的宽度和高度。
package main
import (
"fyne.io/fyne/v2"
"fyne.io/fyne/v2/app"
"fyne.io/fyne/v2/widget"
)
func main() {
a := app.New()
w := a.NewWindow("golang")
w.Resize(fyne.NewSize(300, 50))
w.CenterOnScreen()
label := widget.NewLabel("golang-tech-stack.com")
w.SetContent(label)
w.ShowAndRun()
}
打开多个窗口
package main
import (
"fyne.io/fyne/v2"
"fyne.io/fyne/v2/app"
"fyne.io/fyne/v2/widget"
)
// 打开多个窗口
func openMoreWindow() {
a := app.New()
// 第一个窗口
w := a.NewWindow("Hello World")
w.SetContent(widget.NewLabel("Hello World!"))
w.Show()
// 第二个窗口
w2 := a.NewWindow("Larger")
w2.SetContent(widget.NewLabel("More content"))
w2.Resize(fyne.NewSize(100, 100))
w2.Show()
// 设置第二个窗口为主窗口,主窗口关闭,子窗口也跟着关闭了
w2.SetMaster()
a.Run()
}
func main() {
openMoreWindow()
}
使用SetMaster()设置主窗口。
点击按钮打开窗口
package main
import (
"fyne.io/fyne/v2/app"
"fyne.io/fyne/v2/widget"
)
// 点击按钮单开窗口
func clickButtonOpenWindow() {
a := app.New()
// 第一个窗口
w := a.NewWindow("Hello World")
w.SetContent(widget.NewLabel("Hello World!"))
w.Show()
// 第二个窗口
w2 := a.NewWindow("Larger")
w2.Show()
// 在第二个窗口上添加一个按钮
button := widget.NewButton("Open new", func() {
// 点击事件,打开第三个窗口
w3 := a.NewWindow("Third")
w3.SetContent(widget.NewLabel("Third"))
w3.Show()
})
w2.SetContent(button)
a.Run()
}
func main() {
clickButtonOpenWindow()
}