Fyne开发应用中文字乱码解决方案
安装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
创建 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
发表评论
评论列表
- 这篇文章还没有收到评论,赶紧来抢沙发吧~