当前位置:   article > 正文

Golang GUI编程-图形化界面库简介_golang图形化界面

golang图形化界面

Fyne是一个开源的Golang图形化界面库,通过它可以便捷的为桌面/移动及其它设备建立图形化应用。结合了Golang的强大和简洁,Fyne提供了一整套的组件库,通过它我们可以更方便的进行全平台开发并将你的应用部署至各个平台的应用商店。

1. 部件分类

根据类型划分, Fyne的组件分为以下几类:

  • 基本组件(basics)
  • 画布(Canvas)
  • 布局(Layout)
  • 容器(Container)
  • 小组件(Widget)
  • 数据包(Data binding)

举个例子:

标签

  1. package main
  2. import (
  3. "fyne.io/fyne/v2/app"
  4. "fyne.io/fyne/v2/widget"
  5. )
  6. func main() {
  7. app := app.New()
  8. w := app.NewWindow("Hello")
  9. w.SetContent(widget.NewLabel("Hello Fyne!"))
  10. w.ShowAndRun()
  11. }

这个例子引用了fyne的app和widget包,在编译前要把依赖准备好,golang的包管理机制可以很方便的做这个事情:

完成之后执行目录下会生成go.mod文件,内容如下:

  1. module fyne/1HelloFyne
  2. go 1.17
  3. require fyne.io/fyne/v2 v2.1.2
  4. require (
  5. github.com/davecgh/go-spew v1.1.1 // indirect
  6. github.com/fredbi/uri v0.0.0-20181227131451-3dcfdacbaaf3 // indirect
  7. github.com/fsnotify/fsnotify v1.4.9 // indirect
  8. github.com/go-gl/gl v0.0.0-20210813123233-e4099ee2221f // indirect
  9. github.com/go-gl/glfw/v3.3/glfw v0.0.0-20211024062804-40e447a793be // indirect
  10. github.com/godbus/dbus/v5 v5.0.4 // indirect
  11. github.com/goki/freetype v0.0.0-20181231101311-fa8a33aabaff // indirect
  12. github.com/pmezard/go-difflib v1.0.0 // indirect
  13. github.com/srwiley/oksvg v0.0.0-20200311192757-870daf9aa564 // indirect
  14. github.com/srwiley/rasterx v0.0.0-20200120212402-85cb7272f5e9 // indirect
  15. github.com/stretchr/testify v1.5.1 // indirect
  16. github.com/yuin/goldmark v1.3.8 // indirect
  17. golang.org/x/image v0.0.0-20200430140353-33d19683fad8 // indirect
  18. golang.org/x/net v0.0.0-20210405180319-a5a99cb37ef4 // indirect
  19. golang.org/x/sys v0.0.0-20210630005230-0f9fa26af87c // indirect
  20. golang.org/x/text v0.3.3 // indirect
  21. gopkg.in/yaml.v2 v2.2.8 // indirect
  22. )

 到这里依赖环境就准备好了,开始编译代码,使用终端进入代码目录,使用命令‘go build .’将代码编译为可执行文件,然后通过鼠标双击可执行文件或通过命令行‘./’命令运行应用最终执行效果如下:

注意:fyne用户界面可以通过App.Run() or Window.ShowAndRun()来启动显示,但是使用方面有以下限制:

1. 这两个接口的调用必须在main函数中执行。

2. Run()接口在一份代码中只能调用一次。

3. 桌面应用可以通过App.Quit()直接退出(移动应用暂不支持)。

4.  应用也可以通过关闭所有窗口来关闭。

5. Run()之后的代码,只有在程序退出的时候才会被执行。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/article/detail/42993?site
推荐阅读
相关标签
  

闽ICP备14008679号