Fyne - 中文乱码解决方案
本文最后更新于 2024-08-08,文章内容可能已经过时。
1、安装官方的命令行工具
go get fyne.io/fyne/cmd/fyne //安装后可以在命令行使用 fyne指令
2、在网上下载一个喜欢的字体然后将里面的字体转换为go文件:https://51font.17font.com/
fyne bundle Fyne/FontLibrary/YOUAIMOSR.ttf > bundle.go //创建go资源文件
fyne bundle -append image.jpg >> bundled.go //向资源文件里面追加内容,演示命令
3、创建目录:theme
4、创建文件:theme/theme.go
package theme
import (
"fyne.io/fyne/v2"
"fyne.io/fyne/v2/theme"
"image/color"
)
type MyTheme struct{}
var _ fyne.Theme = (*MyTheme)(nil)
func (m MyTheme) Font(fyne.TextStyle) fyne.Resource {
return resourceYOUAIMOSRTtf //此处的内容是上面命令生成的文件变量,如下图所示
}
func (*MyTheme) Color(n fyne.ThemeColorName, v fyne.ThemeVariant) color.Color {
return theme.DefaultTheme().Color(n, v)
}
func (*MyTheme) Icon(n fyne.ThemeIconName) fyne.Resource {
return theme.DefaultTheme().Icon(n)
}
func (*MyTheme) Size(n fyne.ThemeSizeName) float32 {
return theme.DefaultTheme().Size(n)
}
5、将bundle.go文件移动到theme目录下
6、编辑bundle.go文件包名称为:theme
// auto-generated
// Code generated by '$ fyne bundle'. DO NOT EDIT.
package theme
import "fyne.io/fyne/v2"
//这里的resourceYOUAIMOSRTtf对应着theme/theme.go里面的变量名称
var resourceYOUAIMOSRTtf = &fyne.StaticResource{
StaticName: "YOUAIMOSR.ttf",
StaticContent: []byte(...太长了)
}
7、完整调用代码
package main
import (
"GoGUI/theme"
"fyne.io/fyne/v2/app"
"fyne.io/fyne/v2/container"
"fyne.io/fyne/v2/widget"
)
func main() {
a := app.New()
a.Settings().SetTheme(&theme.MyTheme{})
w := a.NewWindow("验证系统")
hello := widget.NewLabel("快来点一下下面的按钮!")
w.SetContent(container.NewVBox(
hello,
widget.NewButton("点我点我", func() {
hello.SetText("恭喜你,点击成功,虽然没什么卵用~")
}),
))
w.ShowAndRun()
}
目录结构
- theme
- theme.go //方法覆写文件
- bundle.go //资源文件打包后的go文件
- main.go //程序主文件
本文是原创文章,采用 CC BY-NC-ND 4.0 协议,完整转载请注明来自 晴玖科技
评论
匿名评论
隐私政策
你无需删除空行,直接评论以获取最佳展示效果