前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >golang fyne 使用中文并打包进二进制文件

golang fyne 使用中文并打包进二进制文件

作者头像
余生
发布2021-03-02 16:25:38
2.9K0
发布2021-03-02 16:25:38
举报
文章被收录于专栏:余生开发余生开发

1. 首先安装官方的cmd工具

代码语言:javascript
复制
 go get fyne.io/fyne/cmd/fyne

验证:

代码语言:javascript
复制
 fyne

2. 准备好有效的字体文件(.ttf)

3.将字体文件转为go文件

代码语言:javascript
复制
fyne bundle Alibaba-PuHuiTi-Medium.ttf > bundle.go

4. 自动写入头

代码语言:javascript
复制
(head 命令是linux命令,win下需要在git bash中调用)
head -n 9 bundle.go
代码语言:javascript
复制
//文件 bundle.go   (文件中无此句)
// auto-generated
// Code generated by '$ fyne bundle'. DO NOT EDIT.

package theme

import "fyne.io/fyne/v2"

var ResourceSourceHanSansTtf = &fyne.StaticResource{
    StaticName:    "SourceHanSans.ttf",
    StaticContent: []byte(

打开文件会有一个警告 Warning: the file size is very large文件太大了 不过不用理会

5.创建一个自己的theme (也就是重写theme)

代码语言:javascript
复制
// theme.go
package theme

import (
    "fyne.io/fyne/v2"
    "fyne.io/fyne/v2/theme"

    "image/color"
)

type MyTheme struct{}

var _ fyne.Theme = (*MyTheme)(nil)

// return bundled font resource
// ResourceSourceHanSansTtf 即是 bundle.go 文件中 var 的变量名
func (m MyTheme) Font(s fyne.TextStyle) fyne.Resource {
    return ResourceSourceHanSansTtf
}
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)
}

设置一致后 字体文件 可移除。theme.go 中ResourceSourceHanSansTtf名字会报红 不必理会

6.目录结构

代码语言:javascript
复制
├── theme                 
│   │── bundle.go           # 字体转换后的go文件
│   └── theme.go            # 自定义主题文件
├── main.go                 # 程序主入口
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1. 首先安装官方的cmd工具
  • 2. 准备好有效的字体文件(.ttf)
  • 3.将字体文件转为go文件
  • 4. 自动写入头
  • 5.创建一个自己的theme (也就是重写theme)
  • 6.目录结构
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档