v8.0.0 (01.06.2021)
v8.0 带来了许多新功能,例如简化且更强大的滚动、受 CSS Flexbox 和 Grid 启发的新布局、简化和改进的小部件、更强大的事件、可挂钩绘图等。
v8 是一个重大变化,因此它不向后兼容 v7。
目录结构
- 该
lv_
前缀从文件夹的名称删除 - 在
docs
移动到lvgl
存储库 - 将
examples
被移动到lvgl
存储库 src/extra
为复杂的小部件创建一个文件夹:- 它使核心 LVGL 更精简
- 在
extra
我们可以有很多的和具体的部件 - 投稿的好地方
小部件更改
lv_cont
移除,布局特征移至lv_obj
lv_page
删除,滚动功能移动到lv_obj
lv_objmask
同样可以通过事件来实现lv_meter
添加为lv_linemeter
和的联合lv_gauge
lv_span
模仿 HTML 的新小部件<span>
lv_animing
用于简单幻灯片动画的新小部件- + 许多小的更改和改进
新滚动
- 滚动时支持“弹性”滚动
- 支持任何对象类型之间的滚动链接(不仅
lv_pages
是 s) - 删除
lv_drag
。类似的效果可以通过设置位置在LV_EVENT_PRESSING
- 添加捕捉
- 添加捕捉停止以滚动最多 1 个捕捉点
新布局
- 类似 CSS Grid的布局支持
- CSS Flexbox式布局支持
样式
- 优化和简化样式
- 状态保存在对象中而不是样式属性中
- 对象大小和位置也可以在样式中设置
活动
- 允许向一个对象添加多个事件
- A
user_data
可以附加到添加的事件
驱动程序更改
lv_disp_drv_t
,lv_indev_drv_t
,lv_fs_drv_t
需要static
...disp_buf...
重命名为draw_buf
. 请参阅此处的初始化示例。- 如果设置了两个屏幕大小的缓冲区,则不会进行部分更新
disp_drv->full_refresh = 1
使整个显示始终重绘。hor_res
并且ver_res
需要设置disp_drv
indev_read_cb
返回void
。表示有更多要阅读的设置data->continue_reading = 1
在read_cb
其他变化
- 从创建函数中删除复制参数
- 简化的文件系统接口 API
- 使用更通用的继承
- 内置主题已重新设计
lv_obj_align
现在保存对齐并自动重新对齐对象,但不能用于对齐到父对象以外的对象lv_obj_align_to
可以对齐到一个对象但不保存对齐lv_pct(x)
可用于以百分比设置大小和位置- 小部件还有许多其他更改,此处未详述。请参阅小部件的文档。
新的发布政策
- 我们将使用 GitLab 流程跟踪发布分支
- 预计每 3-4 个月发布一次小版本
master
将始终包含最新的更改
从 v7 迁移到 v8
- 首先,创建一个新的
lv_conf.h
基于lv_conf_template.h
. - 要尝试新版本,建议使用模拟器项目并查看示例。
- 将项目迁移到 v8 时
- 更新驱动程序如上所述
- 更新样式
- 更新事件
- 使用新布局而不是
lv_cont
功能 - 使用
lv_obj
代替lv_page
- 其他部分主要是小的重命名和重构。有关说明,请参阅函数的文档。
v7.11.0 (16.03.2021)
新的功能
- 通过软件旋转支持添加更好的屏幕方向管理
- 根据 base_dir 决定文本动画的方向(使用 LV_USE_BIDI 时)
Bug修复
- fix(gauge) 修复针失效
- fix(bar) 垂直滑块的正确对称处理
v7.10.1 (16.02.2021)
Bug修复
- 修复(绘制)与背景重叠的轮廓以防止锯齿伪影
- fix(indev) 清除 indev 的
act_obj
inlv_indev_reset
- fix(text) 修复越界读入
_lv_txt_get_width
- 使用 LV_KEY_NEXT/PREV 聚焦按钮时修复(列表)滚动列表
- fix(text) 通过添加连字符处理和正确处理 lam-alef 序列来改进阿拉伯语上下文分析
- fix(delete) 删除子项后删除动画
- fix(gauge) 考虑针图像的填充
v7.10.0 (02.02.2021)
新的功能
- feat(indev) 允许将输入事件传递给禁用的对象
- feat(spinbox) 为 MicroPython 支持添加内联 get_step 函数
Bug修复
- fix(btnmatrix) 在组中使用时修复 lv_btnmatrix_get_active_btn_text()
v7.9.1 (19.01.2021)
Bug修复
- fix(cpicker) 修复除以零
- fix(dropdown) 修复最后一个之后的选择选项
- fix(msgbox) 使用提供的动画时间
- fix(gpu_nxp_pxp) 修复不正确的定义名称
- 如果组中只有一个对象,则 fix(indev) 不要离开编辑模式
- fix(draw_rect) 修复绘制模式堆栈使用后范围错误
v7.9.0 (05.01.2021)
新的功能
- 壮举(图表)添加 lv_chart_remove_series 和 lv_chart_hide_series
- feat(img_cahce) 允许禁用图像缓存
- 日历:公开 get_day_of_week()
- 添加了对 Zephyr 集成的支持
Bug修复
- 修复(draw_rect)用于阿拉伯语处理的空闲缓冲区
- fix(win) 阿拉伯语处理窗口的标题
- 修复(下拉)阿拉伯语处理 lv_dropdown_add_option 中的选项
- 使用 UTF-8 字符在密码模式下修复(textarea)缓冲区溢出
- 在密码模式下隐藏字符后修复(textarea)光标位置
- fix(linemeter) 用正确的颜色绘制关键线
- fix(lv_conf_internal) 确保 Kconfig 定义总是大写
- fix(kconfig) 句柄正确禁用 sprintf 浮动。
- 达到递归阈值后修复(布局)停止布局
- fix(gauge) 用图像针修复重绘
v7.8.1 (15.12.2020)
Bug修复
- fix(lv_scr_load_anim) 修复同时加载多个屏幕时的延迟
- 修复(页面)修复 LV_SCOLLBAR_MODE_DRAG
v7.8.0 (01.12.2020)
新的功能
- 使 DMA2D 非阻塞
- 添加 unscii-16 内置字体
- 添加 KConfig
- 添加 lv_refr_get_fps_avg()
Bug修复
- fix(btnmatrix) 处理按钮矩阵中的阿拉伯语文本
- fix(indev) 禁用的对象不应该吸收点击,而是让父对象被点击
- fix(arabic) 支持再次处理已经用 _lv_txt_ap_proc 处理过的文本
- fix(textarea) 支持阿拉伯字母连接
- 修复(下拉)支持阿拉伯字母连接
- fix(value_str) 支持值字符串属性中的阿拉伯字母连接
- LV_INDEV_TYPE_BUTTON 中的 fix(indev) 也识别 1 个周期的长按
- fix(arc) 使弧与编码器一起工作
- 修复(滑块)也用编码器调整左旋钮
- 修复 lv_mem.c 中对 LV_DRAW_BUF_MAX_NUM 的引用
- 修复(多边形绘制)连接相邻点,如果它们在同一坐标上
- fix(linemeter) 在设置新值时修复失效
- 修复(表)更改单元格类型时添加缺失的失效
- 重构(滚轮)重命名 LV_ROLLER_MODE_INIFINITE -> LV_ROLLER_MODE_INFINITE
v7.7.2 (17.11.2020)
Bug修复
- fix(draw_triangle): 当点的顺序是逆时针时修复多边形/三角形绘制
- 修复(btnmatrix):修复使用修改后的指针设置相同的地图
- fix(arc) 修复和改进圆弧拖动
- label:修复计算回
dot
字符逻辑错误导致死循环。 - fix(theme_material): 从 tabview 标题中删除底部边框
- fix(imgbtn) 用有效的 src 猜测最接近的可用状态
- 修复(spinbox)更新 lv_spinbox_set_step 中的光标位置
v7.7.1 (03.11.2020)
Bug修复
- 尊重 btnmatrix 的
one_check
inlv_btnmatrix_set_btn_ctrl
- Gauge:使针图像使用来自的样式
LV_GAUGE_PART_PART
- 组:修复
lv_group_remove_obj
以正确处理删除隐藏对象
v7.7.0 (20.10.2020)
新的功能
- 添加 PXP GPU 支持(适用于 NXP MCU)
- 添加 VG-Lite GPU 支持(适用于 NXP MCU)
- 允许最大值 表格的 16 种单元格类型
- 添加
lv_table_set_text_fmt()
- 使用日历标题上的边距将距离和填充设置为标题的大小
- 添加
text_sel_bg
样式属性
Bug修复
- 主题更新支持文字选择背景
- 修复 imgbtn 状态变化
- 支持表格中的 RTL(从右到左绘制列)
- 在漂亮的布局中支持 RTL(从右到左绘制列)
- 如果对象处于禁用状态,则跳过组中的对象
- 使用 RTL basedirection 修复下拉选择
- 修复大宽度矩形边框绘制
- 使固定
lv_win_clean()
v7.6.1 (06.10.2020)
Bug修复
- 修复下拉列表中的 BIDI 支持
- 修复复制基目录
lv_obj_create
- 在字体加载器中处理子像素渲染
- 使用样式缓存修复过渡
- 修复点击焦点
- 修复 imgbtn 图像切换为空样式
- Material 主题:不设置文本字体,方便全局字体更改
v7.6.0 (22.09.2020)
新的功能
- 检查状态更改时是否有任何样式属性发生了更改,以决定是否需要重绘
Bug修复
- 修复下拉列表中带有非 ASCII 字母的选项选择
- 修复字体加载器以支持 LV_FONT_FMT_TXT_LARGE
v7.5.0 (15.09.2020)
新的功能
- 添加
clean_dcache_cb
并lv_disp_clean_dcache
允许用户使用自己的缓存管理功能 - 添加
gpu_wait_cb
等待直到 GPU 工作。它允许仅在需要渲染数据时运行 CPU 等待。 - 添加 10px 和 8ox 内置字体
Bug修复
- 在可滚动后单击 bg 时修复 lv_page 上意外的 DEFOCUS
- 修复
lv_obj_del
以及lv_obj_clean
在删除过程中子列表是否更改。 - 调整按钮矩阵按钮宽度以在跨越多个单元时包括填充。
- 向 btnmatrix 行高计算添加舍入
- 添加
decmopr_buf
到 GC 根 - 如果未找到图像或字母,则在 draw_pattern (lv_draw_rect.c) 中修复除以零
- 修复 1 px 高度或宽度的绘图图像
v7.4.0 (01.09.2020)
v7.4 的主要新功能是运行时字体加载、样式缓存和通过单击设置值的圆弧旋钮。
新的功能
- 添加
lv_font_load()
功能 -lv_font_t
从二进制字体文件加载对象 - 添加
lv_font_free()
功能-释放被分配的内存lv_font_load()
功能 - 添加样式缓存以减少默认值属性的访问时间
- arc:通过点击功能添加设定值
- 弧:添加
LV_ARC_PART_KNOB
类似于滑块 - 如果对象被拖动,则发送手势事件。用户可以
lv_indev_is_dragging(lv_indev_act())
在事件功能中检查拖动。
Bug修复
- 修复边框绘图上的颜色渗色
- 在“LV_SCROLLBAR_ON”之后使用“LV_SCROLLBAR_UNHIDE”进行修复
- 如果图像被缩放,修复最后一列/行的裁剪
- 修复缩放和旋转马赛克图像
- 修复删除带有左/右选项卡位置的 tabview
- 修复 btnmatrix 在 CLICK_TRIG = true 并且光标从按下的按钮上滑动时不发送事件
- 如果所选文本大于正常文本,则修复滚轮宽度
v7.3.1 (18.08.2020)
Bug修复
- 两次修复绘图值字符串
- 重命名
lv_chart_clear_serie
,以lv_chart_clear_series
和lv_obj_align_origo
对lv_obj_align_mid
- 再次添加linemeter的镜像功能
- 使用旧版本的字体转换器修复文本装饰(udnerline 删除线)
- 修复多次设置本地样式属性
- 向图像按钮添加缺少的背景绘图和半径处理
- 允许向列表按钮添加额外标签
- 如果第一次
lv_table_set_col_cnt
调用之前修复崩溃lv_table_set_row_cnt
- 修复大图像转换中的溢出
- 限制按钮矩阵按钮的额外按钮点击区域。使用大填充,这是违反直觉的。(点击时间隙被映射到按钮)。
- 修复
lv_btnmatrix_set_one_check
不强制只检查一个按钮 - 修复矩形模式下颜色选择器失效
- 在日历中将禁用天数初始化为灰色
v7.3.0 (04.08.2020)
新的功能
- 添加
lv_task_get_next
- 添加
lv_event_send_refresh
,lv_event_send_refresh_recursive
轻松发送LV_EVENT_REFRESH
到对象 - 添加
lv_tabview_set_tab_name()
功能 - 用于更改选项卡的名称 - 添加
LV_THEME_MATERIAL_FLAG_NO_TRANSITION
和LV_THEME_MATERIAL_FLAG_NO_FOCUS
标记 - :通过增加减少代码大小
LV_USE_FONT_COMPRESSED
和LV_FONT_USE_SUBPX
和应用一些优化 - 添加
LV_MEMCPY_MEMSET_STD
以使用标准memcpy
和memset
Bug修复
- 如果其高度或宽度为零,则不要打印缺少字形的警告。
- 防止
LV_EVENT_INSERT
从文本区域重复发送 - cpicker 小部件的整洁外边缘。
- 删除重复的行
lv_tabview_add_tab
- btnmatrix:控制按钮的组合状态(例如,已禁用 + 已禁用)
- textarea:修复 lv_textarea_set_sscrollbar_mode 中的错字
- 量规:修复图像针图
- 修复在 _lv_style_list_remove_style 中使用释放的内存
v7.2.0 (21.07.2020)
新的功能
- 添加屏幕过渡
lv_scr_load_anim()
- 添加显示背景颜色、墙纸和不透明度。屏幕透明时显示。可以与
lv_disp_set_bg_opa/color/image()
. - 添加
LV_CALENDAR_WEEK_STARTS_MONDAY
- 添加
lv_chart_set_x_start_point()
功能 - 设置数据数组中x轴起点的索引 - 添加
lv_chart_set_ext_array()
功能 - 设置用于图表的外部数据点数组 - 添加
lv_chart_set_point_id()
功能 - 直接根据索引在图表系列中设置单个点值 - 添加
lv_chart_get_x_start_point()
函数 - 获取数据数组中x轴起点的当前索引 - 添加
lv_chart_get_point_id()
功能 - 直接根据索引获取图表系列中的单个点值 - 将
ext_buf_assigned
位字段添加到lv_chart_series_t
结构 - 如果外部缓冲区分配给系列,则为真 - 添加
lv_chart_set_series_axis()
以将系列分配给主轴或次轴 - 添加
lv_chart_set_y_range()
以允许设置辅助 y 轴的范围(基于lv_chart_set_range
但使用轴参数扩展) - 允许为选定的文本设置不同的字体
lv_roller
- 添加
theme->apply_cb
替换theme->apply_xcb
以使其与 MicroPython 绑定兼容 - 添加
lv_theme_set_base()
以允许轻松扩展内置(或任何)主题 - 添加
lv_obj_align_x()
和lv_obj_align_y()
功能 - 添加
lv_obj_align_origo_x()
和lv_obj_align_origo_y()
功能
Bug修复
tileview
修复非屏幕大小时的导航- 默认情况下使用 14px 字体以更好地与较小的显示器兼容
linemeter
将当前值的对话修复为“级别”- 修复右边框上的绘图
- 设置光标图像默认不可点击
- 与键盘或编码器一起使用时改进单声道主题
v7.1.0 (07.07.2020)
新的功能
- 将
focus_parent
属性添加到lv_obj
- 允许使用编码器输入设备中的按钮
- 添加 lv_btnmatrix_set/get_align 功能
- DMA2D:删除对 ST CubeMX HAL 的依赖
max_used
为lv_mem_monitor_t
struct添加了属性- 在
lv_init
测试字符串是否为 UTF-8 编码。 - 添加
user_data
到主题 - 将 LV_BIG_ENDIAN_SYSTEM 标志添加到 lv_conf.h 以修复在大端系统上显示图像。
- 添加内联函数 lv_checkbox_get_state(const lv_obj_t * cb) 以扩展复选框功能。
- 添加内联函数 lv_checkbox_set_state(const lv_obj_t * cb, lv_btn_state_t state ) 以扩展复选框功能。
Bug修复
lv_img
修复角度或缩放改变时的失效区域- 更新样式处理以支持大端 MCU
- 更改一些方法以支持大端硬件。
- 在函数 lv_theme_set_base() 的参数中删除 C++ 关键字“new”的使用。
- 将 LV_BIG_ENDIAN_SYSTEM 标志添加到 lv_conf.h 以修复在大端系统上显示图像。
- 修复了在大端硬件的文本区域中插入字符的问题。
v7.0.2 (16.06.2020)
Bug修复
lv_textarea
在最后一个字符后单击时修复错误的光标位置- 将整个库中所有与文本相关的索引从 16 位整数更改为 32 位整数。第1545章
- 修复手势
- 不要求
set_px_cb
透明像素 - 修复材料主题中的列表按钮焦点
- 修复当使用键盘退格键清除文本区域时崩溃
- 将版本号添加到
lv_conf_template.h
- 在真正的双缓冲模式下添加日志
set_px_cb
lv_dropdown
:修复LV_EVENT_VALUE_CHANGED
与编码器一起使用时丢失的事件lv_tileview
:如果不是先创建 {0;0} 磁贴,请修复lv_debug
: 重组以允许从lv_misc
太- 如果
_lv_mem_buf_get()
失败则添加断言 lv_textarea
:修复密码模式下的字符删除- 更新
LV_OPA_MIN
并LV_OPA_MAX
扩大不透明度处理范围 lv_btnm
修复隐藏按钮的发送事件lv_gaguge
也使lv_gauge_set_angle_offset
标签和针偏移- 修复 API 中的错字
scrllable
->scrollable
tabview
默认情况下只允许自动将页面扩展到右侧和底部 (#1573)- 修复将渐变绘制为相同颜色时崩溃的问题
- 图表:修复内存泄漏
img
:改进转换图像的命中测试
v7.0.1 (01.06.2020)
Bug修复
- 通过添加所需的变量作为 GC_ROOT 使 Microptyhon 工作
- 为一些内部 API 函数添加前缀
_
以减少 LVGL 的 API - 修复内置 SimSun CJK 字体
LV_USE_ARABIC_PERSIAN_CHARS
启用时修复 UTF-8 编码- 修复 32 位图像直接混合时的 DMA2D 使用
- 与编码器一起使用时,在无限模式下修复 lv_roller
- 添加
lv_theme_get_color_secondary()
- 添加
LV_COLOR_MIX_ROUND_OFS
以调整颜色混合以使其与 GPU 兼容 - 改进 DMA2D 混合
- 删除 memcpy
lv_ll
(导致某些优化设置出现问题) lv_chart
修复 X 刻度线绘图- 修复垂直虚线绘制
- 一些额外的小修复和格式
v7.0.0 (18.05.2020)
文档
v7 的文档可在https://docs.littlevgl.com/v7/en/html/index.html 获得
法律变更
项目名称改为LVGL,新网站在https://lvgl.io
LVGL 在相同条件下保持免费(MIT 许可),并且创建了一家公司来管理 LVGL 并提供服务。
新的绘图系统
完成 LVGL 绘图引擎的重新设计,以使用“蒙版”来获得更高级和更高质量的图形效果。该系统的一个可能用例是从圆角边缘移除溢出的内容。它还允许绘制完美的抗锯齿圆、线和弧。在内部,绘图通过定义遮罩(例如圆角矩形、线条、角度)来进行。当绘制某些东西时,当前活动的蒙版可以使一些像素透明。例如,矩形边框是通过使用 2 个矩形蒙版绘制的:一个蒙版移除内部部分,另一个蒙版移除外部部分。
这方面的 API 保持不变,但增加了一些新功能:
lv_img_set_zoom
: 设置图像对象的缩放系数lv_img_set_angle
: 在不使用画布的情况下设置图像对象的角度lv_img_set_pivot
: 设置旋转的枢轴点
新的绘图引擎也带来了新的绘图功能。它们在“样式”部分突出显示。
新风格系统
旧式系统被一种更灵活、重量更轻的新系统所取代。它使用了一种类似于 CSS 的方法:支持级联样式、继承每个对象的属性和本地样式属性。作为这些更新的一部分,重新设计了许多对象并更改了 API。
- 更多阴影选项:偏移和扩散
- 渐变停止位置移动渐变区域和水平渐变
LV_BLEND_MODE_NORMAL/ADDITIVE/SUBTRACTIVE
混合模式- 剪辑角:裁剪圆角上的内容
- 文本下划线和删除线
- 虚线垂直和水平线(虚线间隙,dash_width)
- 轮廓:从背景中绘制的类似边框的部分。可以与背景有间距。
- pattern : 在背景中间显示和图像或重复它
- value显示存储在样式中的文本。它也可以用作按钮上的轻量级文本。
- margin : 类似于padding但用于在对象之外保留空间
阅读文档的样式部分以了解新样式系统的工作原理。
GPU集成
为了更好地利用 GPU,从这个版本开始,GPU 的使用可以集成到 LVGL 中。在lv_conf.h
任何受支持的 GPU 中,都可以使用单个配置选项启用。
目前,仅集成了 ST 的 DMA2D(Chrom-ART)。在即将发布的版本中会有更多内容。
重命名
重命名了以下对象类型:
- sw -> 开关
- ta -> 文本区域
- cb -> 复选框
- lmeter -> linemeter
- mbox -> msgbox
- ddlist -> 下拉列表
- btnm -> btnmatrix
- kb -> 键盘
- 预加载 -> 旋转器
- lv_objx 文件夹 -> lv_widgets
- LV_FIT_FILL -> LV_FIT_PARENT
- LV_FIT_FLOOD -> LV_FLOOD_MAX
- LV_LAYOUT_COL_L/M/R -> LV_LAYOUT_COLUMN_LEFT/MID/RIGHT
- LV_LAYOUT_ROW_T/M/B -> LV_LAYOUT_ROW_TOP/MID/BOTTOM
返工和改进的对象
dropdown
: 完全重做。现在打开时会创建一个单独的列表,并且可以向下/向上/向左/向右放置。label
:body_draw
被移除,相反,如果它的样式具有可见的背景/边框/阴影等,它将被绘制。填充确实使对象更大(不仅仅是像以前一样)arc
: 也可以画背景。btn
: 不为每个状态存储样式,因为它在新样式系统中很自然地完成。calendar
: 突出显示按下的数据。使用的样式发生了变化:LV_CALENDAR_PART_DATE
正常日期使用正常,选中突出显示,今天聚焦,按下被按下。(选中+按下,聚焦+按下也有效)chart
: 只有具有LINE
和COLUMN
类型,因为使用新样式可以描述所有其他样式。LV_CHART_PART_SERIES 设置系列的样式。bg_opa > 0 在 LINE 模式下绘制一个区域。LV_CHART_PART_SERIES_BG
还添加了为系列区域设置不同的样式。填充LV_CHART_PART_BG
使系列区域更小,并确保轴标签/数字的空间。linemeter
,gauge
: 如果设置了相关的样式属性,则可以有背景。填充使比例尺/线条更小。scale_border_width 和 scale_end_border_width 允许在刻度线的外部绘制弧线。gauge
:lv_gauge_set_needle_img
允许使用图像作为针canvas
: 允许绘制到真彩色 alpha 和仅 alpha 画布,添加lv_canvas_blur_hor/ver
并重命名lv_canvas_rotate
为lv_canvas_transform
textarea
: 如果字体可用,请U+2022
在文本区域密码中使用项目符号 ( ) 字符
新对象类型
lv_objmask
: 可以添加面具。孩子们将被相应地戴上面具。
其他
- 将内置字体更改为Montserrat,并为每第二个大小添加从 12 px 到 48 px 的内置字体。
- 添加示例 CJK 和阿拉伯语/波斯语/希伯来语内置字体
- 将°和“bullet”添加到内置字体中
- 添加阿拉伯语/波斯语脚本支持:根据字符在文本中的位置更改字符。
- 添加
playback_time
到动画。 - 添加
repeat_count
到动画而不是当前的“永远重复”。 - 替换
LV_LAYOUT_PRETTY
为LV_LAYOUT_PRETTY_TOP/MID/BOTTOM
演示
- lv_examples进行了重新设计,并添加了新的示例和演示
新的发布政策
- 为每个版本维护此变更日志
- 在新分支中保存旧的主要版本。例如
release/v6
- 将新功能和修复直接合并到
master
并每 2 周发布一个补丁或次要版本。
从 v6 迁移到 v7
- 首先,创建一个新的
lv_conf.h
基于lv_conf_template.h
. - 要尝试使用模拟器项目建议的新版本并查看示例。
- 如果您有一个正在运行的项目,迁移中最困难的部分是更新到新的样式系统。不幸的是,没有比手动更新到新格式更好的方法了。
- 其他部分主要是如上所述的小改名和重构。