App的启动和运行
GUI程序的生效是需要运行一个事件循环runloop(有时候叫调用一个运行时循环) 来处理用户交互和绘图事件。在Fyne这个过程使用App.Run()
或者 Window.ShowAndRun()
方法。其中一个必须你的main()方法的启动程序最后被调用。
一个Fyne程序应该只有一个runloop方法被调用,如果你调用了两次,那么会造成错误.
go
package main
import (
"fmt"
"fyne.io/fyne/v2/app"
"fyne.io/fyne/v2/widget"
)
func main() {
myApp := app.New()
myWindow := myApp.NewWindow("Hello")
myWindow.SetContent(widget.NewLabel("Hello"))
myWindow.Show()
myApp.Run()
tidyUp()
}
func tidyUp() {
fmt.Println("Exited")
}
对于桌面运行时可以直接调用App.Quit()
来直接退出程序(移动app不支持这项操作),一般不需要写开发代码,一个程序将在所有window窗口被关闭事,退出runloop状态。正如你所意料到的那样,在App.Run()
之后的代码直到程序退出才会被执行。