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

这一期讲解的控件是条形码,条形码在lvgl中是没有具体控件的需要用户去自定义组件,这里使用code128并由fhunleth提供。

(1)GUI-guider中使用

在控件列表中拖拽条形码控件,将控件拖入到屏幕中然后点击条形码在右侧属性面板中可以调试参数。

(2)用法

1.在lv_conf.h中启用LV_USE_BARCODE。

2.使用lv_barcode_create()创建条形码对象,使用lv_barcode_update()生成条形码。

  1. 调用 lv_barcode_set_scale() 调整缩放,调用 lv_barcode_set_dark_color() 和 lv_barcode_set_light_color() 调整颜色,调用 lv_barcode_set_direction() 设置显示方向,再次调用 lv_barcode_update() 重新生成条形码。

(3)使用提示

• 最好不要手动设置条形码的宽度,因为当 Widget 的宽度小于条形码的宽度时,由于截断,显示会不完整。

• 缩放调整只能是整数倍,例如,lv_barcode_set_scale(barcode, 2) 意味着 2x 缩放。

• 方向调整可以是 LV_DIR_HOR 或 LV_DIR_VER。

(4)代码

//Write style for screen_1, Part: LV_PART_MAIN, State: LV_STATE_DEFAULT.

lv_obj_set_style_bg_opa(ui->screen_1, 255, LV_PART_MAIN|LV_STATE_DEFAULT);

lv_obj_set_style_bg_color(ui->screen_1, lv_color_hex(0xffffff), LV_PART_MAIN|LV_STATE_DEFAULT);

lv_obj_set_style_bg_grad_dir(ui->screen_1, LV_GRAD_DIR_NONE, LV_PART_MAIN|LV_STATE_DEFAULT);

//Write codes screen_1_barcode_1

//创建条形码对象

ui->screen_1_barcode_1 = lv_barcode_create(ui->screen_1);

//设置条形码尺寸

lv_obj_set_height(ui->screen_1_barcode_1, 50);

//设置缩放比例为1

lv_barcode_set_scale(ui->screen_1_barcode_1, 1);

//设置深色条颜色

lv_barcode_set_dark_color(ui->screen_1_barcode_1, lv_color_hex(0x2C3224));

//设置浅色背景色

lv_barcode_set_light_color(ui->screen_1_barcode_1, lv_color_hex(0xffffff));

//更新条形码数据并显示

const char * screen_1_barcode_1_data = "www.baidu.com";

lv_barcode_update(ui->screen_1_barcode_1, screen_1_barcode_1_data);

//确认位置和高度

lv_obj_set_pos(ui->screen_1_barcode_1, 136, 208);

lv_obj_set_height(ui->screen_1_barcode_1, 50);

本文章由威三学社出品

对课程感兴趣可以私信联系

相关推荐
清心歌21 分钟前
CopyOnWriteArrayList 实现原理
java·开发语言
Java成神之路-42 分钟前
通俗易懂理解 Spring MVC 拦截器:概念、流程与简单实现(Spring系列16)
java·spring·mvc
zhanghongbin0143 分钟前
AI 采集器:Claude Code、OpenAI、LiteLLM 监控
java·前端·人工智能
计算机毕设vx_bysj68691 小时前
【免费领源码】77196基于java的手机银行app管理系统的设计与实现 计算机毕业设计项目推荐上万套实战教程JAVA,node.js,C++、python、大屏数据可视化
java·mysql·智能手机·课程设计
忘梓.1 小时前
墨色规则与血色节点:C++红黑树设计与实现探秘
java·开发语言·c++
hhh3u3u3u1 小时前
Visual C++ 6.0中文版安装包下载教程及win11安装教程
java·c语言·开发语言·c++·python·c#·vc-1
星河耀银海1 小时前
C++ 模板进阶:特化、萃取与可变参数模板
java·开发语言·c++
格鸰爱童话1 小时前
向AI学习项目技能(五)
java·学习
程序员萌萌1 小时前
Java之mysql实战讲解(三):聚簇索引与非聚簇索引
java·mysql·聚簇索引
好家伙VCC1 小时前
**发散创新:基于Python与ROS的机器人运动控制实战解析**在现代机器人系统开发中,**运动控制**是实现智能行为的核心
java·开发语言·python·机器人