赞
踩
基本环境
Fyne 需要存在 3 个基本元素,Go 工具(至少 1.12 版)、一个 C 编译器(用于连接系统图形驱动程序)和一个系统图形驱动程序。说明因您的操作系统而异,请选择下面的相应选项卡以获取安装说明。
请注意,这些步骤只是开发所必需的——您的 Fyne 应用程序不需要为最终用户进行任何设置或依赖安装!
window
MSYS2 与 MingW-w64 - msys2.org
Cygwin - cygwin.com
##下载安装
go get fyne.io/fyne/v2
###安装 fyne
###一键安装
网上大多是一键安装 ,但实际在windows中,安装不成功 改为手动安装
go install fyne.io/fyne/v2/cmd/fyne@latest
###手动安装
cd fyne.io/fyne/v2/cmd/fyne
go build -o fyne.exe main.go
添加环境变量

下面都是跟网上教程一样
fyne bundle msyh.ttc >> bundled.go
fyne bundle -append msyhbd.ttc >> bundled.go
生成 bundled.go
// theme.go package main import ( "fyne.io/fyne/v2" "fyne.io/fyne/v2/theme" "image/color" ) type MyTheme struct{} var _ fyne.Theme = (*MyTheme)(nil) // return bundled font resource // ResourceSourceHanSansTtf 即是 bundle.go 文件中 var 的变量名 func (m MyTheme) Font(s fyne.TextStyle) fyne.Resource { return resourceMsyhTtc } func (*MyTheme) Color(n fyne.ThemeColorName, v fyne.ThemeVariant) color.Color { return theme.DefaultTheme().Color(n, v) } func (*MyTheme) Icon(n fyne.ThemeIconName) fyne.Resource { return theme.DefaultTheme().Icon(n) } func (*MyTheme) Size(n fyne.ThemeSizeName) float32 { return theme.DefaultTheme().Size(n) }
###引入模块
a.Settings().SetTheme(&MyTheme{})
###项目目录

下面是我实现一个小功能读取txt文件信息
直接上代码
package main import ( "bufio" "io" "log" "fyne.io/fyne/v2" "fyne.io/fyne/v2/app" "fyne.io/fyne/v2/container" "fyne.io/fyne/v2/dialog" "fyne.io/fyne/v2/widget" ) //go run .\main.go .\theme.go .\bundled.go //go build -ldflags="-H windowsgui -w -s" func main() { a := app.New() w := a.NewWindow("中文test") //设置中文 a.Settings().SetTheme(&MyTheme{}) w.Resize(fyne.NewSize(500, 500)) w.SetContent(container.NewVBox(makeU2I(w))) w.ShowAndRun() } func makeU2I(w fyne.Window) (*widget.Label, *widget.Button, *widget.Button, *widget.Label, *widget.Button) { // display := widget.NewEntry() // display.MultiLine = true output := &widget.Label{Alignment: fyne.TextAlignTrailing} output.TextStyle.Monospace = true output.Resize(fyne.NewSize(400, 200)) equation := "" button := widget.NewButton("开始", func() { //todo //百度读取 equation += "1\n" output.SetText(equation) }) button2 := widget.NewButton("清除", func() { equation = "" output.SetText(equation) }) output2 := &widget.Label{Alignment: fyne.TextAlignTrailing} output2.TextStyle.Monospace = true output2.Resize(fyne.NewSize(400, 200)) btn := widget.NewButton("show dialog", func() { dialog.ShowFileOpen(func(uc fyne.URIReadCloser, e error) { strall := "" reader := bufio.NewReader(uc) for { str, err := reader.ReadString('\n') if err == io.EOF { break } strall += str } //buf, err := ioutil.ReadAll(uc) // if err != nil { // fyne.LogError("Failed to load image data", err) // } output2.SetText(strall + uc.URI().Path()) }, w) }) return output, button, button2, output2, btn } func action() []string { //百度爬虫 var list []string = []string{} return list }
结果

Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。