fyne :显示中文

fyne 是 go 的一个 gui 工具包。不过这个工具包默认是不支持中文字体的,中文字体需要额外引入,目前在网上找到的方法都是用官方提供 fyne命令去把 .ttf文件专成 .go文件,然后在主题设置中引入。这里对于高版本的 go ,大可不必这样做。(因为.ttf转成go实在是太大了,导致这个文件的变量在golang上反应迟缓)

我们可以先看下生成了什么
fyne bundle HarmonyOS_Sans_SC_Regular.ttf > bundle.go

package main

import "fyne.io/fyne/v2"

var resourceHarmonyOSSansSCRegularTtf = &fyne.StaticResource{
    StaticName: "HarmonyOS_Sans_SC_Regular.ttf",
    StaticContent: []byte(....
    ......
    ),
}

所以可见我们只要把 ttf 的内容以 []byte 的形式设置到 StaticContent 就可以了。这里采用embed来处理

//go:embed HarmonyOS_Sans_SC_Regular.ttf
var hmTTf []byte

同时将该变量设置到fyne.StaticResource,可以有相同的效果。因为没有生成 go 文件,也不会影响 goland开发。

显示效果如下。

fyne :显示中文

github.com/thh9/bigbrother

本作品采用《CC 协议》,转载必须注明作者和本文链接
biubiubiu
讨论数量: 6

正为这个发愁

1年前 评论

这个不是最新的V2.3版本吧;最新版本好像会报错;要使用V2.2.4版本的话是没报错的 , 是因为官方不支持中文导致读取异常的么?

1年前 评论
滚球兽进化 (楼主) 3个月前

密码框的话还是有乱码,这个有办法解决么?

3个月前 评论
滚球兽进化 (楼主) 3个月前
Sue-_-9269 (作者) 3个月前

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!