从LVGL标签读取数据转为变量

bash 复制代码
label 显示的文本格式是 %.4fmm,例如 12.3456mm。
目标是从文本中提取出 12.3456 并转为 double 类型。
c 复制代码
		lv_label_set_text(guider_ui.screen_1_label_1, position_mm_buffer);
		就可以更新了
		lv_obj_invalidate(guider_ui.screen_1_label_1);更新后重绘

		char View_VUE[32]; //更新显示
		snprintf(View_VUE, sizeof(View_VUE), "%.4fmm", circleVUE_Min_extreme);
		if (lv_scr_act() == guider_ui.screen_1)
		{ // 检查当前活动屏幕是否为屏幕1
		if (lv_obj_is_valid(guider_ui.screen_1_label_6)) 
		{
		lv_label_set_text(guider_ui.screen_1_label_6, View_VUE);
			lv_obj_invalidate(guider_ui.screen_1_label_6);
		}
		}		
c 复制代码
// 获取 label 文本
const char *text = lv_label_get_text(guider_ui.screen_1_label_6);

// 提取数值部分(去掉 单位"mm")
char value_str[32];
sscanf(text, "%[^m]", value_str);

// 转为 double
double value = atof(value_str);

确保 label 文本格式固定:如果格式变化(例如单位位置不同),需要调整字符串处理逻辑。

错误处理:如果 label 文本为空或格式错误,atof() 会返回 0,需要额外检查。

内存安全:value_str 长度要足够容纳数值字符串,避免溢出。

相关推荐
冬奇Lab12 小时前
每日一个开源项目(第143篇):page-agent - 纯 JS 的网页 GUI Agent,无需截图、无需插件、无需后端
前端·人工智能·agent
To_OC13 小时前
LC 994 腐烂的橘子:人人都说是 BFS 入门题,我却写了三遍才过
javascript·算法·leetcode
IT_陈寒16 小时前
React的这个渲染问题连官方文档都没说清楚
前端·人工智能·后端
追逐时光者17 小时前
别再满网找零散工具了,腾讯 QQ 浏览器这个“帮小忙”工具箱真能省时间
前端·后端
如果超人不会飞17 小时前
脉络清晰的业务演进:TinyVue Timeline 时间线组件全方位实战指南
vue.js
如果超人不会飞17 小时前
从扁平到立体:掌握 TinyVue Grid 树形表格的高级实战指南
vue.js
To_OC19 小时前
LC 200 岛屿数量:经典 DFS 入门题,我第一次写居然连方向都搞错了
javascript·算法·leetcode
Asmewill19 小时前
grep&curl命令学习笔记
前端
stringwu19 小时前
Flutter 开发必备:MVI 架构的高效实现指南
前端·flutter
用户21366100357220 小时前
Vue2组件化开发与父子通信
前端·vue.js