简单粗暴,一个初始化函数解决,直接上代码
函数代码:
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文件的补发替换为你系统里有的文件。