一、基础应用
fyne的静态资源其实就是把资源文件编译为二进制文件,然后在代码中直接作为变量传入。这种办法的好处在于,进行yne应用打包时可以 无需额外的图片资源。 需要用到类似于下列的命令:
//这个命令是把image.1.png病译为名叫bundLed.go的二进制义件
fyne bundle image1.png >bundled.go
//这命$是把image.1.png添加到为名叫bund儿ed.g0的二进制文件
fyne bundle -append image2.png >bundled.go
注意
·fyne bundle命令以乎不能自动更新,也就是多次添加相同内容后,在编泽时会出现提示重新声明了相同资源,建议此时删除文件oundle g,重新生成。 ·经过上述操作后,运行命令“go build main.go"或者“go run main.go”极有可能还会出现如下错误提示:“.main.go:39:43:undefined:resourc elconPng'”。此时,需要运行“go build."或者“go run.”,可解决此问题。
二、关于批量绑定资源与更新问题
fyne资源只是一个具有唯一名称的字节集合,因此它可以是字体、声音文件或您希望加载的任何其他数据。此外,您还可以使用-append参数 将许多资源捆绑到一个文件中。如果要绑定多个文件,建议将命令保存在其中一个go文件(不是文件bundled.go)的go:generate头中,类似 于下面:
//YOU SHOULD FIRST RUN:go bundle to generate the related resource go file!!!
//And then,compile and run the main.go file.
//
//go:generate fyne bundle -o bundled.go icon.png
//go:generate fyne bundle -o bundled.go -append Logo.png
//go:generate fyne bundle -o bundled.go -append imagecrawler.jpg
package main
import
//…
把上面4、5、6行定好后,注意到其前部出现系统提示“rung0 generate'”,,比时移动鼠标到这个链接处点击一下,系统即会自动运行4、5、6行 对应的fyne bundle命令,并且自动更新oundled.go文件。 如果您随后更改了任何资源或添加了新的资源,那么您可以更新上面的头并使用“go generate"运行它来更新oundled.go文件。然后,您应该将 bundled.go添加到版本控制中,这样其他人就可以构建您的应用程序,而无需再运行“fyne bundle”。 上述方案要比在命令行下操作效率高多了。 windows 不带命令行的打包命令:
go build -ldflags "-s -w -H=windowsgui"
打包为Windows可执行文件:
fyne package -os windows -icon myIcon.ico