学习GO语言的Fyne框架
入门
基本环境
Fyne 需要存在 3 个基本元素,Go 工具(至少 1.12 版)、一个 C 编译器(用于连接系统图形驱动程序)和一个系统图形驱动程序。
linux下需要
1 | sudo apt-get install golang gcc libgl1-mesa-dev xorg-dev |
安装
见Fyne的github页面
简单程序
- 使用 app.New() 创建一个应用程序实例
- 使用 app.NewWindow() 打开一个窗口
- 定义一个小部件树,在窗口上使用 SetContent() 将其设置为主要内容
- 通过在窗口上调用 ShowAndRun() 来显示应用程序 UI
应用和事件
GUI 应用程序需要运行一个事件(有时称为 runloop)来处理用户交互和绘图事件。
在 Fyne 中,这是使用App.Run()
或Window.ShowAndRun()
函数开始的。必须从main()
函数中设置代码的末尾调用其中之一。
一个应用程序应该只有一个运行循环,因此应该只在代码中调用一次Run()
。再次调用它会导致错误。
对于桌面运行时,可以通过调用App.Quit()
直接退出应用程序(移动应用程序不支持此功能)(通常在开发人员代码中不需要)。关闭所有窗口后,应用程序也将退出。在应用程序退出Run()
之前不会调用之后执行的函数。
更新GUI的内容
1 | //第一步是将要更新的小部件分配给变量。 |
窗口处理
使用
App.NewWindow()
创建窗口使用
show()
展示默认窗体大小就是其Content面板上元素的大小。可以使用
Window.Resize()
方法设置窗体大小,传入一个宽和高,这个宽高不会受设备实际像素影响。例如让一个窗口显示默认正方形(桌面环境可能存在导致窗口小于请求的限制;移动设备通常会忽略窗体大小,因为移动设备只能以全屏显示)1
w.Resize(fyne.NewSize(100, 100))
设置多窗口
- 创建多个窗口,并分别调用
show()
函数 - 使用
Window
的SetMaster()
函数设置主窗口 - 可以在一个窗口内创建一个按钮,使按钮打开新窗口,新窗口会出现在当前活动内容之上。