fyne实战

1 介绍fyne界面实现

使用Fyne工具包构建跨平台应用是非常简单的,在此之前我们需要做一些准备功能做,比如安装一些gcc基础图形依赖库,还有go语言本身的运行开发环境都是必要的。
经我研究一天,我感觉它的界面实现跟html有一定的区别的,首选一点就是它的容器和布局不能给定大小,给了不会变,它是根据它容器的特性决定,首选是Box 盒子模型,VBox是最小尺寸,这一点刚开始用的时候,设计模型用VBOX和HBOX,傻眼了。后来才用到Border边框布局

2 Border 边框布局

myApp := app.New()
	myWindow := myApp.NewWindow("Border Layout")
	red := color.NRGBA{R: 0xff, A: 0xff}
	//blue := color.NRGBA{B: 0xff, A: 0xff}
	top := canvas.NewText("top bar", color.Black)
	left := canvas.NewText("left", red)

	nofi := canvas.NewText("content", red)
	backgroundColor := canvas.NewRectangle(color.NRGBA{R: 200, G: 200, B: 100, A: 255})
	//backgroundColor.FillColor = blue

	// 使用容器将背景添加到窗口中
	middle := container.New(layout.NewStackLayout(), backgroundColor, nofi)

	content := container.NewBorder(top, nil, left, nil, middle)
	myWindow.SetContent(content)
	myWindow.ShowAndRun()

我们定义了3个容器上面左面和中间,上面和左边的都很小,中间会自动填充,效果图:
在这里插入图片描述

3 其他容器

给出官方地址

https://go-circle.cn/fyne-press/v1.0/4-containers-and-layout/max.html

在这里插入图片描述
还有一些特殊的像container.NewVSplit 创建个垂直相等自动填充的容器,你可以像下面一样创建容器,容器放到容器里面。

content := container.NewBorder(ssbURL2,
		layout.NewSpacer(),
		container.NewGridWithColumns(1, button, button2, button3, button4, layout.NewSpacer(), layout.NewSpacer(), layout.NewSpacer(), layout.NewSpacer(), layout.NewSpacer()),
		layout.NewSpacer(),
		container.NewVSplit(entry, entry2),

4.编译

本来是像结合大漠插件一起写的,可以测试的时候大漠和fyne 在一起不能编译通过一个是386,amd64。只能改变方案用http连接了

5.小项目

下面地址项目地址。fyne到一段落

git clone https://gitee.com/qaz9877/b44.git

下面是一个本地图片查看器,是我最近更新的

git clone https://gitee.com/qaz9877/ff56.git

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐