计算机学习

您现在的位置是:首页 > fyne > 正文

fyne

Fyne开发应用中文字乱码解决方案

hhb2022-04-05fyne343
安装statikgo get github.com/rakyll/statik使用 statikstatik -src=../font  

安装 statik

go get github.com/rakyll/statik

使用 statik

statik -src=../font  #src指定当前字体所在路径

执行后会在当前目录下生成statik目录,并在statik目录下生成statik.go

1649134202(1).png

创建 dialog.go

dialog.go文件内容如下

package main

import (
   "fyne.io/fyne/v2/app"
   "fyne.io/fyne/v2/widget"
   _ "hhb/api/statik"
   "github.com/rakyll/statik/fs"
   "io/ioutil"
   "log"
   "os"
)

var tmpFile, _ = ioutil.TempFile("", "*")

func init() {
   fileSystem, err := fs.New()
   if err != nil {
      log.Fatalln(err.Error())
   }
   file, err := fileSystem.Open("/miniHei.ttf")
   if err != nil {
      log.Fatalln(err.Error())
   }
   content, err := ioutil.ReadAll(file)
   if err != nil {
      log.Fatalln(err.Error())
   }
   _, _ = tmpFile.Write(content)
}
func main(){
   //删除临时文件
   defer func() {
      _ = tmpFile.Close()
      _ = os.Remove(tmpFile.Name())
   }()
   //设置环境变量 FYNE_FONT
   os.Setenv("FYNE_FONT", tmpFile.Name())
   myApp := app.New()
   myWindow := myApp.NewWindow("Canvas")
   myWindow.SetContent(widget.NewLabel("我是中文"))

   myWindow.ShowAndRun()
}

注意

_ "hhb/api/statik" #这里要导入,要不然会报 no zip data registered,这个错误.hhb是go.mod 里的module 名。后面是刚才生成statik包的路径

运行 dialog.go,结果如图

go run dialog.go

1649134391(1).png

发表评论

评论列表

  • 这篇文章还没有收到评论,赶紧来抢沙发吧~