Flutter引入iconfont图标并自动生成dart图标文件

  • 下载iconfont文件
  • flutter 项目 pubspec.yaml文件中配置
  • 自动转换脚本

下载iconfont文件

将iconfont文件下载到本地。解压之后放到flutter项目的assets 目录下。

flutter 项目 pubspec.yaml文件中配置

自动转换脚本

新建一个translate.py文件,将下面脚本拷贝到文件中。其中变量IconDart ,IconCss 根据实际情况可做更改。 执行 python3 translate.py 命令

# coding: u8
import re
from pathlib import Path
import time
ROOT = Path(__file__).resolve().parent
MAIN = ROOT
# 生成的IconFont.dart 文件路径
IconDart = 'lib/common/style/IconFont.dart'
# iconfont css 文件存放路径
IconCss = 'assets/iconfont/iconfont.css'
# 将 iconfont 的 css 自动转换为 dart 代码
def translate():print('Begin translate...')code = """import 'package:flutter/widgets.dart';/// @author:  hsc/// @date: {date}/// @description  代码由程序自动生成。请不要对此文件做任何修改。class IconFont {static const String FONT_FAMILY = 'IconFont';{icon_codes}}""".strip()strings = []content = open(MAIN / IconCss).read().replace('\n  content', 'content')matchObj = re.finditer( r'.icon-(.*?):(.|\n)*?"\\(.*?)";', content)for match in matchObj:name = match.group(1)name = name.replace("-","_")string = f'  static const IconData {name} = const IconData(0x{match.group(3)}, fontFamily: IconFont.FONT_FAMILY);'strings.append(string)strings = '\n'.join(strings)code = code.replace('{icon_codes}', strings)code = code.replace('{date}', time.strftime("%Y-%m-%d %H:%M:%S", time.localtime()))open(MAIN / IconDart, 'w').write(code)print('Finish translate...')if __name__ == "__main__":translate()

结果展示

脚本运行前置条件:python3 环境

Flutter引入iconfont图标,并自动生成dart图标文件相关推荐

  1. 使用Inno Setup 6将exe文件打包成压缩包并设置压缩后自动生成桌面图标

    文章目录 前言 一.下载Inno Setup 6 二.安装步骤 1.安装Inno Setup 6并打开 2.进入制作页面 3.进行安装 总结 前言 本文讲述了通过Inno Setup 6进行打包安装, ...

  2. 用MyEclipse自动生成hibernate映射文件和实体类

    创建web工程,使用Hibernate的时候,在工程里一个一个创建实体类太麻烦,浪费时间,现在教大家如何用MyEclipse自动生成Hibernate映射文件及实体类 方法/步骤 1 创建数据库,创建 ...

  3. python建立文件数据库_python学习-- Django根据现有数据库,自动生成models模型文件...

    Django引入外部数据库还是比较方便的,步骤如下 : 创建一个项目,修改seting文件,在setting里面设置你要连接的数据库类型和连接名称,地址之类,和创建新项目的时候一致 运行下面代码可以自 ...

  4. Wix 安装部署教程(十六) -- 自动生成多语言文件

    Wix 安装部署教程(十六) -- 自动生成多语言文件 原文:Wix 安装部署教程(十六) -- 自动生成多语言文件 因为持续集成需要,所有项目编译完之后生成一个多语言的安装包.之前生成mst文件都是 ...

  5. 阻止 WSL 自动生成/etc/hosts 文件

    阻止 WSL 自动生成/etc/hosts 文件 修改了 /etc/host 文件,然而重启电脑就发现里面的内容还原了. 一直百思不得其解,仔细一看,发现/ etc/hosts 最上方的注释写着: T ...

  6. 如何配置log4j每天产生日志,并且当天日志大于10M时自动生成另一个文件

    http://bbs.csdn.net/topics/390635339?page=1 如何配置log4j每天产生日志,并且当天日志大于10M时自动生成另一个文件 假设 11-11日 生成comlib ...

  7. android自动生成dimens适配文件

    android自动生成dimens适配文件 提示:写完文章后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 android自动生成dimens适配文件 前言 一.使用步骤 1.引入库 2. ...

  8. sqlite数据库自动生成db-journal后缀文件的解决方法

    1.使用sqlite数据库时发现,目录中自动生成db-journal后缀文件,    同时新数据没有写入db,重启软件后新数据就丢失了. 2.经排查是使用的jar驱动版本太旧了,需要将驱动包更新为sq ...

  9. 删除MAC自动生成的DS_Store文件

    删除MAC自动生成的DS_Store文件     本文主要记录如何删除MAC自动生成的DS_Store文件. 目录 删除MAC自动生成的DS_Store文件 1.步骤1 2.步骤2 3.步骤3 1.步 ...

最新文章

  1. mysql进程管理,MySQL管理
  2. pytorch 笔记: 扩展torch.autograd
  3. SAP连接外部ORACLE数据库
  4. 创建Python虚拟环境——下
  5. JAVA中小细节(易忽视和易错点)
  6. 系统查找存储过程和触发器
  7. nodejs template
  8. 《5》CentOS7.0+OpenStack+kvm云平台部署—配置Horizon
  9. 利用深度卷积模型对巴拉科咖啡叶疾病进行分类
  10. VC学习笔记:状态栏
  11. 程序员入门编程,看这10本书,少走10年弯路
  12. R7000刷梅林固件一个小结(变砖解决)
  13. Ruby on Rails 入门学习
  14. 利用计算机建立动画中的 画面 由,计算机图形术在三维动画中的应用.doc
  15. ourplay插件_ourplay64位辅助包
  16. OA系统是什么?分分钟使用Java开发出来!!
  17. 省市县数十万数据集PM2.5面板数据(1998-2020年)
  18. 什么是关联以及为什么要关联
  19. java谷歌填表_chrome自动填表会遮挡input中背景图的问题解决方法
  20. linux 变量引用 和 变量的自动类型转换 c++,C++能不能让编译器自动推导变量类型吗...

热门文章

  1. CakePHP v3.9.3 Connection to database could not be established: SQLSTATE[HY000] [1045] Access
  2. 一起用python做个炫酷音乐播放器【V3.0含源码及打包exe】
  3. 手机总是自动关机怎么办呢
  4. 在《我的世界》里从零打造一台计算机有多难?复旦本科生大神花费了一年心血......
  5. pytorch加载预训练模型遇到的问题:KeyError: ‘bn1.num_batches_tracked‘
  6. 开心网不开心:用户,该怎样让你留下来?
  7. 磨金石教育摄影技能干货分享|优秀摄影欣赏—足球经典名画
  8. Ubuntu ifconfig查看网卡信息 lo enp2s0 wlp3s0 具体含义
  9. nec c语言笔试题,红外NEC编码发射程序_C语言(国外英文资料).doc
  10. 关于软件开发中的数据库 Sybase、Oracle、DB2、SQL Server、MySQL、SQLite、Access