news 2026/4/18 9:11:06

使用ZYNQ芯片和LVGL框架实现用户高刷新UI设计系列教程(第四十六讲)

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
使用ZYNQ芯片和LVGL框架实现用户高刷新UI设计系列教程(第四十六讲)

这一期讲解的控件是进度条文本控件,textprogress是 LVGL 库中的一个组件,用于显示进度文本的控件。

如上图所示,在GUI_guider中进度文本控件的使用,将控件拖拽到画布中,然后在右侧的属性列表中更改配置,进度文本的数值范围、数值的步数以及进度文本的初始值和位数显示。
下图是根据右侧属性列表配置得到的。

以下是代码的实例解析:
//Write codes screen_1_textprogress_1
//创建控件
ui->screen_1_textprogress_1 = lv_textprogress_create(ui->screen_1);
//设置进度文本的数值范围
lv_textprogress_set_range_value(ui->screen_1_textprogress_1, 0, 100, 0, 0);
//设置两位有效数字显示
lv_textprogress_set_decimal(ui->screen_1_textprogress_1, 2);
//设置初始值为0
lv_textprogress_set_value(ui->screen_1_textprogress_1, 0);
//设置位置以及大小
lv_obj_set_pos(ui->screen_1_textprogress_1, 185, 209);
lv_obj_set_size(ui->screen_1_textprogress_1, 100, 32);

//Write style for screen_1_textprogress_1, Part: LV_PART_MAIN, State: LV_STATE_DEFAULT. //设置边框半径:0(直角矩形)

lv_obj_set_style_radius(ui->screen_1_textprogress_1, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
//文本颜色:黑色(#000000)
lv_obj_set_style_text_color(ui->screen_1_textprogress_1, lv_color_hex(0x000000), LV_PART_MAIN|LV_STATE_DEFAULT);
//字体:Alatsi Regular ,大小22
lv_obj_set_style_text_font(ui->screen_1_textprogress_1, &lv_font_Alatsi_Regular_22, LV_PART_MAIN|LV_STATE_DEFAULT);
lv_obj_set_style_text_opa(ui->screen_1_textprogress_1, 255, LV_PART_MAIN|LV_STATE_DEFAULT);
//字母间距:2px
lv_obj_set_style_text_letter_space(ui->screen_1_textprogress_1, 2, LV_PART_MAIN|LV_STATE_DEFAULT);
//文本对齐:居中
lv_obj_set_style_text_align(ui->screen_1_textprogress_1, LV_TEXT_ALIGN_CENTER, LV_PART_MAIN|LV_STATE_DEFAULT);
lv_obj_set_style_bg_opa(ui->screen_1_textprogress_1, 255, LV_PART_MAIN|LV_STATE_DEFAULT);
//背景颜色:白色(#FFFFFF)
lv_obj_set_style_bg_color(ui->screen_1_textprogress_1, lv_color_hex(0xffffff), LV_PART_MAIN|LV_STATE_DEFAULT);
lv_obj_set_style_bg_grad_dir(ui->screen_1_textprogress_1, LV_GRAD_DIR_NONE, LV_PART_MAIN|LV_STATE_DEFAULT);
//顶部内边距:8px 其他三边内边距:0
lv_obj_set_style_pad_top(ui->screen_1_textprogress_1, 8, LV_PART_MAIN|LV_STATE_DEFAULT);
lv_obj_set_style_pad_right(ui->screen_1_textprogress_1, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
lv_obj_set_style_pad_bottom(ui->screen_1_textprogress_1, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
lv_obj_set_style_pad_left(ui->screen_1_textprogress_1, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
//阴影宽度:1px
lv_obj_set_style_shadow_width(ui->screen_1_textprogress_1, 1, LV_PART_MAIN|LV_STATE_DEFAULT);
//阴影颜色:黑色
lv_obj_set_style_shadow_color(ui->screen_1_textprogress_1, lv_color_hex(0x000000), LV_PART_MAIN|LV_STATE_DEFAULT);
lv_obj_set_style_shadow_opa(ui->screen_1_textprogress_1, 255, LV_PART_MAIN|LV_STATE_DEFAULT);
//阴影扩散:2px
lv_obj_set_style_shadow_spread(ui->screen_1_textprogress_1, 2, LV_PART_MAIN|LV_STATE_DEFAULT);
lv_obj_set_style_shadow_ofs_x(ui->screen_1_textprogress_1, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
lv_obj_set_style_shadow_ofs_y(ui->screen_1_textprogress_1, 0, LV_PART_MAIN|LV_STATE_DEFAULT);
本文章由威三学社出品
对课程感兴趣可以私信联系

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/18 8:06:48

为什么没人走后门当程序员?

最近刷 X 乎时看到这样一个耐人寻味的的讨论话题,浏览量超 170w,参与讨论的同学也好多。 问题描述是这样的: “为什么没人走后门当程序员?” 我认真浏览了一圈,心里五味杂陈。 在许多人眼中,程序员是一个…

作者头像 李华
网站建设 2026/4/18 0:42:41

亲测好用2026 TOP9 AI论文工具:专科生毕业论文神器测评

亲测好用2026 TOP9 AI论文工具:专科生毕业论文神器测评 2026年专科生论文写作工具测评:为何需要这份榜单? 随着人工智能技术的不断进步,AI论文工具已经成为高校学生,尤其是专科生群体中不可或缺的辅助工具。然而&#…

作者头像 李华
网站建设 2026/4/17 18:12:27

破局Python代码保护:操作码映射重置的攻防博弈与未来防护演进

Python凭借简洁的语法、丰富的生态成为跨领域开发的主流语言,但因其解释型特性,字节码易被反编译、源码泄露风险高的问题始终困扰着开发者与企业。代码保护成为Python商业化、工程化落地的核心课题,而操作码(Opcode)映…

作者头像 李华
网站建设 2026/3/29 7:48:39

WEP-L水文模型率定拟合优但验证失效:成因解析与系统化解决策略

在WEP-L分布式水文模型的实际应用中,率定期实测与模拟流量高拟合、验证期拟合效果大幅衰减是典型的模型应用痛点,该问题本质反映了模型参数稳健性不足、输入输出数据匹配度低或模型结构与研究区水文过程适配性偏差,若未针对性解决&#xff0c…

作者头像 李华
网站建设 2026/4/18 8:48:00

STM32H743: 实现XPT2046触摸屏与LTDC联动

目录 一、XPT2046 触摸屏与 LTDC 联动实现 1. XPT2046 核心原理(与 LTDC 联动的基础) 2. 前置准备 (1)硬件连接(STM32H743 XPT2046 800x480 TFT-LCD) (2)软件环境 3. STM32C…

作者头像 李华