Skip to content
On this page

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()之后的代码直到程序退出才会被执行。