简单粗暴,一个初始化函数解决,直接上代码

 

函数代码:

func init() {
	//设置中文字体:解决中文乱码问题
	fontPaths := findfont.List()
	for _, path := range fontPaths {
		if strings.Contains(path, "msyh.ttf") || strings.Contains(path, "simhei.ttf") || strings.Contains(path, "simsun.ttc") || strings.Contains(path, "simkai.ttf") {
			os.Setenv("FYNE_FONT", path)
			break
		}
	}
}

 

整体代码:

package main

import (
	"os"
	"strings"

	"fyne.io/fyne/v2/app"
	"fyne.io/fyne/v2/widget"
	"github.com/flopp/go-findfont"
)

func init() {
	//设置中文字体:解决中文乱码问题
	fontPaths := findfont.List()
	for _, path := range fontPaths {
		if strings.Contains(path, "msyh.ttf") || strings.Contains(path, "simhei.ttf") || strings.Contains(path, "simsun.ttc") || strings.Contains(path, "simkai.ttf") {
			os.Setenv("FYNE_FONT", path)
			break
		}
	}
}

func main() {

	myApp := app.New()

	myWindow := myApp.NewWindow("中文")
	label := widget.NewLabel("汉字")

	myWindow.SetContent(label)

	myWindow.Show()
	myApp.Run()
}

 

评论区里有人报错的原因:

需要确保电脑里面有你要导入的那个字体,比如我要导入名为msyh.ttf的字体文件,我就要确保系统存放字体的目录中有这个字体文件。

如果那个字体文件不存在,自然就无法正常导入。

我的示例代码是在Windows10上试过的,可以成功运行,如果你用的MacOS或者Linux系列,需要把示例代码中对应导入msyh.ttf文件的补发替换为你系统里有的文件。

 

 

Logo

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

更多推荐