嵌入式 LVGL / SquareLine UI 标准命名规则(行业通用版)

一般嵌入式的UI 命名规则是什么?

嵌入式 LVGL / SquareLine UI 标准命名规则(行业通用版)

适配:STM32/ESP32/RK 嵌入式、SquareLine Studio、LVGL 8/9,工程量产规范,好维护、不冲突、一眼看懂。

一、整体核心原则

  1. 见名知意:不写拼音、不写乱序字母
  2. 分层前缀:页面→控件→功能,层级清晰
  3. 统一小写 + 下划线home_btn_start 不用驼峰
  4. 禁止中文、特殊符号、空格
  5. 同页面控件唯一,全局页面名唯一

二、固定前缀规范(最常用、直接照搬)

1. 页面 / 屏幕 前缀 scr_

plaintext

复制代码
scr_home        主页
scr_setting     设置页
scr_wifi        配网页
scr_about       关于页
scr_sensor      传感器数据页

2. 常用控件固定前缀

表格

控件类型 前缀 示例
按钮 btn_ btn_ok、btn_back、btn_switch
标签文字 label_ label_temp、label_hum、label_title
图片 img_ img_logo、img_bat、img_wifi
滑块 slider_ slider_bright、slider_vol
开关 switch_ switch_led、switch_auto
复选框 cb_ cb_agree、cb_notice
列表 list_ list_menu、list_log
容器 / 面板 cont_ cont_top_bar、cont_data_box
弹窗 popup_ popup_tip、popup_error
键盘 kb_ kb_input
图表 chart_ chart_temp_line

三、标准命名格式(公式)

格式 1:页面_控件_功能

plaintext

复制代码
scr_home_btn_setting       主页-设置按钮
scr_setting_label_wifi     设置页-WiFi文字
scr_sensor_cont_data       传感器页-数据容器

格式 2:控件_功能_位置

plaintext

复制代码
btn_back_top       顶部返回按钮
label_val_left     左侧数值标签

四、禁止的错误命名

❌ 不行:

  • btn1btn2label123(无意义编号)
  • 开始按钮主页文字(中文)
  • aaa_testtemp_ui(随意乱起)
  • 同名字控件:两个都叫 btn_ok

✅ 正确:

  • scr_home_btn_start
  • scr_setting_label_time

五、SquareLine 专用额外规则

  1. Screen 屏幕 :全部以 scr_ 开头

  2. Root 根容器 :统一 cont_root_页面名

  3. 多语言文本:命名还是照常,只勾选翻译即可,不用特殊改名

  4. 动画控件 :末尾加 _anim

    plaintext

    复制代码
    img_wifi_anim   WiFi动画图标

六、量产项目最简模板(你直接套用)

主页:

  • scr_home
  • scr_home_btn_menu
  • scr_home_label_temp
  • scr_home_img_bat

设置页:

  • scr_setting
  • scr_setting_btn_save
  • scr_setting_switch_led
  • scr_setting_cont_net

我可以给你一份完整控件命名前缀表,以后你在 SquareLine 新建控件直接照着取名,不用自己想规则,要吗?

如果特别多的情况下会特别长,也没问题吗?

先给你一句定心结论名字再长、只要规范命名,完全没问题,不占 RAM、不拖慢 UI、不影响固件,工程里反而更稳更好维护。

我给你拆开讲透,你就放心敢用长命名了。

1. 变量名长 ≠ 耗资源

嵌入式 C / LVGL 里:

  • 编译之后 变量名直接消失,变成地址、偏移量
  • 长名字不占 Flash、不占内存、不耗运行速度只在:源码、SquareLine 工程里看着长,编译后毫无负担。

2. 为什么控件多了名字必须长?

你控件一多,比如:

plaintext

复制代码
btn_up
btn_down
label_val

马上重名、分不清是哪个页面的哪个控件

如果写成规范长命名:

plaintext

复制代码
scr_setting_cont_net_btn_up
scr_setting_cont_net_btn_down
scr_data_label_temp_val

看着很长,但:

  • 永远不重名
  • 一眼知道在哪、干嘛的
  • 后期改 UI、改逻辑、删页面绝不改错控件

3. 行业真实做法

大厂嵌入式、工控屏、家电 UI:全部用超长全名命名没人用简写、没人用 btn1 btn2。

因为:控件一多,简写必乱、编号必崩,后期维护成本爆炸。

4. 那能不能稍微折中、不要太变态长?

可以,给你一套兼顾不长 + 又不乱的折中规则:

  1. 页面简写scr_home → 不用简scr_setting → 可以简成 scr_set

  2. 容器可以省略不写进名字只要控件在对应页面里,不用套多层容器前缀例:不用:scr_set_cont_wifi_btn_save可用:scr_set_btn_wifi_save

少一层容器,立刻短很多,又不丢失可读性

  1. 不用把位置全写进去左右、上下没必要都标,功能优先就行

5. 唯一坏处只有一个

SquareLine 里列表看着密密麻麻、名字很长仅此而已,没有任何技术副作用。

6. 给你建议直接照用

  • 控件数量 几十、上百个:放心用长命名,规范拉满
  • 不想太啰嗦:页面简写 + 控件类型 + 功能 三段式就够
  • 绝对不要:btn1、label2、无意义缩写、拼音

要不要我给你定一套适中不长、又不乱的固定命名模板,你以后所有页面控件直接套格式,不用自己想长短?

如果按照这种命名方式命名长达60字符也可以吗

直接给你确定答案完全可以,60 个字符、甚至 70、80 字符都没问题,嵌入式、LVGL、SquareLine、ESP32/STM32 全都正常能用,没有任何性能、内存、编译限制问题。


1. 先讲关键点:C 语言变量名限制

标准 C 语言:

  • 编译器至少支持 31 个有效字符
  • 现在 GCC、Keil、ESP-IDF、STM32CubeIDE 默认支持 128~255 字符 你 60 字符,远远在安全范围内,不会被截断、不会重名、不会编译报错

2. 编译后长名字会怎样?

  • 源码里的长变量名:scr_setting_cont_wifi_list_item_label_signal_strength
  • 编译完直接消失,变成内存地址、偏移标号
  • 不占 Flash、不占 RAM、不卡顿、不影响 LVGL 运行速度 只在你写代码、看工程时看着长,硬件层面零开销

3. SquareLine 支持吗?

支持,随便起:

  • 60 字符、70 字符都能正常生成代码
  • 不会崩溃、不会截断、不会导出失败
  • UI 绑定、事件回调、多语言全部正常工作

4. 唯一小缺点

就两个,不影响功能:

  1. 编辑器侧边栏名字太长,显示不全,要拉宽列表
  2. 代码行变长,看着有点挤

除此之外没有任何副作用


5. 给你一个稳妥建议

  1. 60 字符放心用,完全没问题
  2. 实在太长看着累,可以轻微缩写
    • settingset
    • temperaturetemp
    • humidityhum缩一下能压到 40 多字符,依然规范、又不啰嗦。

总结:60 字符完全合规、编译器支持、LVGL 支持、SquareLine 支持,不耗内存不卡 UI,随便命名不用顾虑。

总结

变量名字的长短没有任何关系,只要编译器可以识别就可以,编译完直接消失

  • 源码里的长变量名:scr_setting_cont_wifi_list_item_label_signal_strength
  • 编译完直接消失,变成内存地址、偏移标号
  • 不占 Flash、不占 RAM、不卡顿、不影响 LVGL 运行速度 只在你写代码、看工程时看着长,硬件层面零开销
相关推荐
十八旬2 小时前
快速安装ClaudeCode完整指南
开发语言·windows·python·claude
谁的小耳朵4 小时前
一次小米电脑管家安装失败排查:官网安装包闪退,最后发现是埋点接口异常
windows
x***r1516 小时前
DLL错误专修工具_TBI3264安装步骤详解(附DLL缺失一键修复与运行库安装教程)
windows
AITOP1009 小时前
高德联合千问开源AGenUI:让Agent UI同时跑在iOS、安卓和鸿蒙上
ui·ios·开源
阿萨德528号9 小时前
Windows RabbitMQ 启动完整指南(附启动报错解决、如何以服务方式后台运行)
windows·rabbitmq·ruby
私人珍藏库10 小时前
[吾爱大神原创工具] 鼠标轨迹美化工具
windows·工具·鼠标·软件·win·多功能
小小测试开发10 小时前
AI Agent 重构单体应用实战:1Password 经验与避坑指南
人工智能·windows·重构
您^_^10 小时前
专家(一):Claude Code 微服务实战——6 个服务从拆分到 K8s 部署,$0.45 全套 YAML 照抄
人工智能·windows·微服务·架构·kubernetes·个人开发·claude code
TE-茶叶蛋10 小时前
Java 8 引入的Stream API-stream()
java·windows·python