准备支持中文的 ttf 文件

ttf 字体可以从 https://www.fonts.net.cn/下载,或电脑本地获取

代码中嵌入 ttf 文件

import (  
    _ "embed"  
)  
  
//go:embed "Arial Unicode.ttf"  
var ttfBytes []byte

使用 embed 嵌入 ttf 文件,路径能读取到就行

自定义主题

import (  
    "fyne.io/fyne/v2"  
    "image/color"  
    "fyne.io/fyne/v2/theme"  
)  
  
type MyTheme struct{}  
  
func (MyTheme) Color(c fyne.ThemeColorName, v fyne.ThemeVariant) color.Color {  
      return theme.DefaultTheme().Color(c, v)
}  
  
func (MyTheme) Font(s fyne.TextStyle) fyne.Resource {  
   return fyne.NewStaticResource("Arial Unicode.ttf", ttfBytes)  
}  
  
func (MyTheme) Icon(n fyne.ThemeIconName) fyne.Resource {  
    return theme.DefaultTheme().Icon(n)  
}  
  
func (MyTheme) Size(s fyne.ThemeSizeName) float32 {  
    return theme.DefaultTheme().Size(s)  
}  

设置主题

app := app.NewWithID("MyApp")  
app.Settings().SetTheme(MyTheme{})

参考项目

git@github.com:lusingander/fyne-theme-generator.git