learn fyne 4 添加中文支持

通过自定义主题,使用中文字体来支持中文
golang版本要在1.16以上,下载字体文件,新建文件mytheme.go,内容如下:
package main
import (
_ "embed"
"image/color"
"fyne.io/fyne/v2"
"fyne.io/fyne/v2/theme"
)
// 得意黑https://github.com/atelier-anchor/smiley-sans
//go:embed SmileySans-Oblique.ttf
var font []byte
var myfont = &fyne.StaticResource{ StaticName: "FZLTCXHJW", StaticContent: font, }
type theme1 struct{}
var _ fyne.Theme = (*theme1)(nil)
func (*theme1) Font(s fyne.TextStyle) fyne.Resource {
return myfont
}
func (*theme1) Color(n fyne.ThemeColorName, v fyne.ThemeVariant) color.Color {
return theme.DefaultTheme().Color(n, v)
}
func (*theme1) Icon(n fyne.ThemeIconName) fyne.Resource {
return theme.DefaultTheme().Icon(n)
}
func (*theme1) Size(n fyne.ThemeSizeName) float32{
return theme.DefaultTheme().Size(n)
}
在main.go中使用自定义主题:
package main
import (
"fyne.io/fyne/v2"
"fyne.io/fyne/v2/app"
"fyne.io/fyne/v2/theme"
"fyne.io/fyne/v2/widget"
)
func main() {
a := app.NewWithID("fyne1")
a.Settings().SetTheme(&theme1{})
w := a.NewWindow("fyne1")
w.SetIcon(theme.FyneLogo())
w.Resize(fyne.NewSize(1000, 700))
lbl1 := widget.NewLabel("Welcome to fyne! 欢迎学校fyne框架!")
w.SetContent(lbl1)
w.CenterOnScreen()
w.ShowAndRun()
}
运行 go run .
中文正常显示