learn fyne 4 添加中文支持

通過自定義主題,使用中文字體來支持中文
golang版本要在1.16以上,下載字體文件,新建文件mytheme.go,內(nèi)容如下:
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! 歡迎學(xué)校fyne框架!")?
????w.SetContent(lbl1)?
????w.CenterOnScreen()?
????w.ShowAndRun()
}
運(yùn)行 go run .
中文正常顯示