Window 窗口处理
使用App.NewWindow()
创建窗体,展示使用Show()
函数。fyne.Window
提供了方法ShowAndRun()
允许你显示窗体并同事运行应用。
默认窗体大小就是其Content面板上元素的大小。你可以使用Window.Resize()
方法设置窗体大小,传入一个宽和高,这个宽高不会受设备实际像素影响。例如让一个窗口显示默认正方形
go
w.Resize(fyne.NewSize(100, 100))
请注意,桌面环境可能存在导致窗口小于请求的限制。移动设备通常会忽略窗体大小,因为移动设备只能以全屏显示。
如果你想显示两个窗口你只能调用Show()
函数,它可以有用的区分Window.Show()
和App.Run()
;如果你想在程序启动之后开启多窗口,下面的例子会告诉你如何加载两个窗口
go
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("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()
a.Run()
}
当两个窗口都关闭的时候,程序就退出了,如果你的程序排设定成其中一个是主界面,而其他窗口是辅助窗体,你可以将这个窗口设置为主界面,这样当该主窗口关闭时,应用程序就会退出。这些只需要你通过Window
的SetMaster()
函数
你可以随时创建窗口,我们更改代码如下,以便第二个窗口的内容是一个打开新窗口的按钮。你可以从更复杂的工作流加载窗口,但是请注意,新的窗口通常都是出现在当前活动窗口的上方。
go
w2.SetContent(widget.NewButton("Open new", func() {
w3 := a.NewWindow("Third")
w3.SetContent(widget.NewLabel("Third"))
w3.Show()
}))