嵌入式 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 运行速度 只在你写代码、看工程时看着长,硬件层面零开销
相关推荐
步行cgn2 小时前
Spring 注入 List 集合详解
windows·spring·list
云泽8083 小时前
从零搭建 WSL2 + Ubuntu C/C++ 开发环境:原理、实践与底层架构解析
linux·c++·windows·ubuntu·wsl2
YCOSA202511 小时前
雨晨 Windows 10 企业版 LTSC x64 中度精简 1809 迎双节 17763.9257 特别版
windows
sukalot12 小时前
windows 驱动实例分析系列: HidHide 驱动分析 - drivers 篇(四)
windows·驱动开发
ι:17 小时前
NUC12 Pro 安装 Ubuntu 24.04 LTS 详细教程
linux·windows·ubuntu·nuc
YCOSA202517 小时前
微软宣布将于10月7日举行Windows与Surface发布会,聚焦“Windows、NVIDIA RTX Spark、Surface,以及更广泛PC生态”
windows
Source.Liu18 小时前
【A11】 labelprinter(Tauri 版)新建步骤
windows·rust
Punchline27819 小时前
解决 Windows 环境变量 Path 设置时提示“字符太长”的完整指南
windows·环境变量·path
chushiyunen19 小时前
claude code笔记(二)、claude桌面端(内网不好用)
windows
d_benhua20 小时前
以太网测试步骤
windows