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

这一期讲解的控件是日期控件,datetext 是 LVGL 库中的一个组件,用于创建显示日期的控件。

显示当前的日期,年月日。在GUI_guider中可以通过右侧的属性列表设置日期、背景以及字体的颜色大小格式。

以下是我根据属性栏设置的样式:

以下是代码实例:

//Write codes screen_1_datetext_1

//创建标签对象

ui->screen_1_datetext_1 = lv_label_create(ui->screen_1);

//设置标签显示文本为 "2026/01/20"

lv_label_set_text(ui->screen_1_datetext_1, "2026/01/20");

//文本水平居中对齐

lv_obj_set_style_text_align(ui->screen_1_datetext_1, LV_TEXT_ALIGN_CENTER, 0);

//添加可点击标志,使标签可以响应点击事件

lv_obj_add_flag(ui->screen_1_datetext_1, LV_OBJ_FLAG_CLICKABLE);

//绑定事件回调函数 screen_1_datetext_1_event_handler

lv_obj_add_event_cb(ui->screen_1_datetext_1, screen_1_datetext_1_event_handler, LV_EVENT_ALL, NULL);

//设置位置以及大小

lv_obj_set_pos(ui->screen_1_datetext_1, 153, 226);

lv_obj_set_size(ui->screen_1_datetext_1, 167, 38);

复制代码
//Write style for screen_1_datetext_1, Part: LV_PART_MAIN, State: LV_STATE_DEFAULT.
// 边框半径(0表示直角矩形)

lv_obj_set_style_radius(ui->screen_1_datetext_1, 0, LV_PART_MAIN|LV_STATE_DEFAULT);

// 文本颜色(黑色)

lv_obj_set_style_text_color(ui->screen_1_datetext_1, lv_color_hex(0x000000), LV_PART_MAIN|LV_STATE_DEFAULT);

// 字体

lv_obj_set_style_text_font(ui->screen_1_datetext_1, &lv_font_Alatsi_Regular_22, LV_PART_MAIN|LV_STATE_DEFAULT);

// 文本不透明度(255=完全不透明)

lv_obj_set_style_text_opa(ui->screen_1_datetext_1, 255, LV_PART_MAIN|LV_STATE_DEFAULT);

// 字符间距(2像素)

lv_obj_set_style_text_letter_space(ui->screen_1_datetext_1, 2, LV_PART_MAIN|LV_STATE_DEFAULT);

// 背景不透明度

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

// 背景颜色(白色)

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

// 背景渐变方向(无渐变)

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

// 上内边距(7像素)

lv_obj_set_style_pad_top(ui->screen_1_datetext_1, 7, LV_PART_MAIN|LV_STATE_DEFAULT);

// 左右内边距(0像素)

lv_obj_set_style_pad_right(ui->screen_1_datetext_1, 0, LV_PART_MAIN|LV_STATE_DEFAULT);

// 阴影宽度(1像素)

lv_obj_set_style_pad_left(ui->screen_1_datetext_1, 0, LV_PART_MAIN|LV_STATE_DEFAULT);

// 阴影颜色(黑色)

lv_obj_set_style_shadow_width(ui->screen_1_datetext_1, 1, LV_PART_MAIN|LV_STATE_DEFAULT);

// 阴影不透明度(255=完全显示)

lv_obj_set_style_shadow_color(ui->screen_1_datetext_1, lv_color_hex(0x000000), LV_PART_MAIN|LV_STATE_DEFAULT);

// 阴影扩展(2像素,使阴影更扩散)

lv_obj_set_style_shadow_opa(ui->screen_1_datetext_1, 255, LV_PART_MAIN|LV_STATE_DEFAULT);

// 阴影偏移(水平和垂直方向都不偏移)

lv_obj_set_style_shadow_spread(ui->screen_1_datetext_1, 2, LV_PART_MAIN|LV_STATE_DEFAULT);

lv_obj_set_style_shadow_ofs_x(ui->screen_1_datetext_1, 0, LV_PART_MAIN|LV_STATE_DEFAULT);

lv_obj_set_style_shadow_ofs_y(ui->screen_1_datetext_1, 0, LV_PART_MAIN|LV_STATE_DEFAULT);

本文章由威三学社出品

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

相关推荐
青春逝如流水10 分钟前
Java 线程在内存模型(JMM)与 JVM 实现:规范与落地的多元路径
java·开发语言·jvm·多线程·ai文章
wangbing11252 小时前
springboot应用关闭时触发动作
java·spring boot·后端
weixin_460443565 小时前
2026年新修订《网络安全法》实施:Java私有化考试系统如何做好SBOM、漏洞治理与安全升级?
java·开发语言·在线考试系统·企业培训考试系统·宏远培训考试系统·国企培训考试系统·国产化培训系统
海鸥-w8 小时前
什么是AOP
java
Cc.Y8 小时前
Java零基础入门:可变字符串与包装类:StringBuilder、StringBuffer 与 通讯录管理系统实战
java·开发语言·python
paopaokaka_luck8 小时前
基于springboot+vue的智慧家政管理系统(AI问答、 WebSocket实时沟通、ECharts运营分析、订单规则与服务追踪)
java·javascript·spring boot·数据分析·echarts·mybatis
sm_926787058 小时前
RFID 标签打印的技术实现要点与二次开发实践
java·大数据·前端·c++·编辑器
阿森_dev9 小时前
2027 届毕设选题怎么选:30 个 Java 方向选题的实现难度排序
java·开发语言·spring boot·毕业设计·课程设计
Sarvartha9 小时前
Lambda 表达式和函数式接口
java·开发语言
计算机毕业设计杰瑞9 小时前
【计算机毕设精品】基于SpringBoot的一体化教务与学业质量管理系统的设计与实现,附源码_增删改查_java项目_可完美运行部署_网站项目
java·spring boot·课程设计