合宙Air724UG LuatOS-Air LVGL API控件--日历 (Calendar)

日历 (Calendar)
在这里插入图片描述

LVGL 提供了一个用来选择和显示当前日期的日历控件。

示例代码
– 高亮显示的日期
highlightDate = lvgl.calendar_date_t()

– 日历点击的回调函数
– 将点击日期设置高亮
function event_handler(obj, event)
if event == lvgl.EVENT_VALUE_CHANGED then
date = lvgl.calendar_get_pressed_date(obj)
if date then
print(string.format(“Clicked date: %02d.%02d.%d\n”, date.day, date.month, date.year))
highlightDate.year = date.year
highlightDate.month = date.month
highlightDate.day = date.day
lvgl.calendar_set_highlighted_dates(obj, highlightDate, 1)
end
end
end

– 创建日历
calendar = lvgl.calendar_create(lvgl.scr_act(), nil)
lvgl.obj_set_size(calendar, 235, 235)
lvgl.obj_align(calendar, nil, lvgl.ALIGN_CENTER, 0, 0)
lvgl.obj_set_event_cb(calendar, event_handler)

– 设置今天日期
today = lvgl.calendar_date_t()
today.year = 2018
today.month = 10
today.day = 23

lvgl.calendar_set_today_date(calendar, today)
lvgl.calendar_set_showed_date(calendar, today)
创建
通过 lvgl.calendar_create 函数可以获取一个日历控件。

calendar = lvgl.calendar_create(lvgl.scr_act(), nil)
要知道日历控件是个大家伙,虽然可以对日历控件设置大小,但是如果如果尺寸显示过小,显示效果会严重折扣。毕竟这样的控件不会像那些简单的矢量图形一样可以自动调整。

lvgl.obj_set_size(calendar, 128, 160)
设置日历大小 128*160 显示效果就是这样。所以屏幕分辨率不是很高,不建议使用日历控件。

在这里插入图片描述

使用
日历控件当然是用在显示日期的地方,一个日历控件就能当成是一个应用了。也可以辅助用户选择日期,让用户输入一个日期还是比较繁琐的,格式也不好确定,而且用户很有可能会输入一个不存在的日期 2021年02月29日。通过日历控件可以很好的辅助用户选择日期。

日期
日期是通过 lvgl.calendar_date_t() 函数创建的,这是个用户自定义数据,注意不要用 talbe 创建日期,两者还是有区别的。

today = lvgl.calendar_date_t()
today.year = 2018
today.month = 8
today.day = 8
选择/设置日期
日历控件有三个常用日期,今天的日期,高亮日期,当前显示的日期。

today = lvgl.calendar_date_t()
today.year = 2018
today.month = 10
today.day = 23
lvgl.calendar_set_today_date(calendar, today) – 设置当前日期

show = lvgl.calendar_date_t()
show.year = 2018
show.month = 9
show.day = 23
lvgl.calendar_set_showed_date(calendar, show) – 设置显示日期

light = lvgl.calendar_date_t()
light.year = 2018
light.month = 10
light.day = 23
lvgl.calendar_set_highlighted_dates(calendar, light, 1) – 设置高亮日期
来看下这三个日期的区别:
image.png
2018年10月11日是高亮显示的效果。
2018年10月23日是当前日期的显示效果。
但是控件默认显示是在9月,因为显示的日期是2018年09月23日。

在这里插入图片描述

事件
除了对象的通用事件以外,日历控件可以通过 lvgl.EVENT_VALUE_CHANGED 事件获取当前用户点击的日期。

function event_handler(obj, event)
if event == lvgl.EVENT_VALUE_CHANGED then
date = lvgl.calendar_get_pressed_date(obj)
if date then
print(string.format(“Clicked date: %02d.%02d.%d\n”, date.day, date.month, date.year))
end
end
end

lvgl.obj_set_event_cb(calendar, event_handler)
在这里插入图片描述
在这里插入图片描述

API
lvgl.calendar_create
调用 lvgl.calendar_create(par, copy)
功能 创建日历对象
返回 指向创建的日历的指针
参数
par 指向对象的指针, 它将是新日历的父对象
copy 指向日历对象的指针, 如果不为 nil, 则将从其复制新对象
lvgl.calendar_set_today_date
调用 lvgl.calendar_set_today_date(calendar, today)
功能 设定今天的日期
参数
calendar 指向日历对象的指针
today 指向包含今天的日期的变量的指针
lvgl.calendar_set_showed_date
调用 lvgl.calendar_set_showed_date(calendar, showed)
功能 设置当前显示
参数
calendar 指向日历对象的指针
showed 指向包含要显示日期的变量的指针。
lvgl.calendar_set_highlighted_dates
调用 lvgl.calendar_set_highlighted_dates(calendar, light, num)
功能 设置高亮显示日期
参数
calendar 指向日历对象的指针
light 指向包含要显示日期的变量的指针。
num 高亮日期个数。
lvgl.calendar_get_today_date
调用 lvgl.calendar_get_today_date(calendar)
功能 获取今天的日期
返回 指向包含今天的日期的变量的指针。
参数
calendar 指向日历对象的指针
lvgl.calendar_get_showed_date
调用 lvgl.calendar_get_showed_date(calendar)
功能 获取当前显示
返回 包含日期的变量的指针正在显示。
参数
calendar 指向日历对象的指针
lvgl.calendar_get_pressed_date
调用 lvgl.calendar_get_pressed_date(calendar)
功能 获取按下日期。
返回 指向包含按下日期的变量的指针。如果当前未按下,显示 nil。
参数
calendar 指向日历对象的指针

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/65495.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

(15)线程的实例认识:同步,异步,并发,并发回调,事件,异步线程,UI线程

参看:https://www.bilibili.com/video/BV1xA411671D/?spm_id_from333.880.my_history.page.click&vd_source2a0404a7c8f40ef37a32eed32030aa18 下面是net framework版本 一、文件构成 1、界面如下。 (1)同步与异步有什么区别? …

有哪些前端可以做的性能优化点

前端性能优化是一个广泛的主题,涉及许多不同的技术和策略。以下是一些常见的前端性能优化点: 资源压缩和最小化: 使用工具如Terser来压缩和最小化JavaScript代码。使用CSS压缩工具如CSSNano。压缩HTML内容。 图片优化: 使用适当的…

单片机TVS/ESD二极管防护

TVS 瞬态电压抑制二极管Transient Voltage Suppressor ESD 静电释放二极管 Electro-Static discharge 这两种本质上都是二极管。都是利用了二极管正向导通、反向截止的特性。二极管在反向截止截止条件下,如果电压继续增大,将会引发雪崩,使得…

聚合多个电商API接口平台

API接口测试(点击免费测试) 随着数字化商业时代的到来,API接口已成为电商资源连接利器,也是全球传统互联网企业转型的基础。 2021年 Google Cloud 研究显示,全球互联网企业近3/4的企业持续投入数字化转型&#xff0c…

SpringMVC之异常处理器

文章目录 前言一、基于配置的异常处理二、基于注解的异常处理总结 前言 SpringMVC提供了一个处理控制器方法执行过程中所出现的异常的接口:HandlerExceptionResolver。 HandlerExceptionResolver接口的实现类有:DefaultHandlerExceptionResolver&#x…

JVM类的加载过程

加载过程 JVM的类的加载过程分为五个阶段:加载、验证、准备、解析、初始化。 加载   加载阶段就是将编译好的的class文件通过字节流的方式从硬盘或者通过网络加载到JVM虚拟机当中来。(我们平时在Idea中书写的代码就是放在磁盘中的,也可以通…

什么是RTC

参考: https://zhuanlan.zhihu.com/p/377100294 RTC(Real time communication)实时通信,是实时音视频的一个简称,我们常说的RTC技术一般指的是WebRTC技术,已经被 W3C 和 IETF 发布为正式标准。由于几乎所…

文件操作(c/c++)

文件操作可以概括为几步: 打开文件,写入文件,读取文件,关闭文件 FILE FILE 是一个在C语言中用于文件操作的库函数,它提供了一系列函数来实现文件的创建、打开、读取、写入、关闭等操作。FILE 库函数可以帮助开发者处理…

精品基于SpringCloud实现的电影院购票系统设计-微服务-分布式

《[含文档PPT源码等]精品基于SpringCloud实现的电影院购票系统设计的设计与实现-微服务-分布式》该项目含有源码、文档、PPT、配套开发软件、软件安装教程、项目发布教程等 软件开发环境及开发工具: 开发语言:Java 框架:springcloud JDK版…

Springboot - 6.AOP

👀概念 当谈论AOP(面向切面编程)时,我们在软件设计中引入了一种编程范式,用于解决关注点分离的问题。关注点分离是将一个应用程序的不同关注点(例如日志记录、事务管理、安全性等)从业务逻辑中…

Docker 网络模式

文章目录 一、Docker 网络实现原理1.容器的端口映射 二、Docker的网络模式1.Host模式2.Container模式3.none模式4.bridge模式 三、自定义网络1、查看网络模式列表2、查看容器信息(包含配置、环境、网关、挂载、cmd等等信息)3、指定分配容器IP地址 面试题 一、Docker…

shiro550漏洞分析

准备工作 启动该项目 可以看到没有登录时候,cookie中没有rememberme字段 登录时候 当账号密码输入正确时候 登录后存在该字段 shiro特征: 未登陆的情况下,请求包的cookie中没有rememberMe字段,返回包set-Cookie⾥也没有del…

微信小程序在线阅读系统微信小程序设计与实现

摘 要:信息技术永远是改变生活的第一种创新方式,各种行业的发展更是脱离不了科技化的支持。原本传统的行业正在被科技行业的切入悄悄的发生变化。就拿我们生活当中常见的事情举例而言,在外卖行业还没有发展的快速的时候,方便面等速…

美创科技一体化智能化公共数据平台数据安全建设实践

公共数据是当今政府数字化转型的关键要素和未来价值释放的核心锚点,也是“网络强国”、“数字中国”的战略性资源。 作为数字化改革先行省份,近年来,浙江省以一体化智能化公共数据平台作为数字化改革的支撑总平台,实现了全省公共数…

正则表达式(JAVA)

正则表达式(JAVA) 文章目录 正则表达式(JAVA)用法字符类(只匹配一个字符)预定义字符(只匹配一个字符)数量词贪婪爬取符号捕获分组规则捕获分组符号 非捕获分组案例忽略大小写 用法 正则表达式在用于校验信息是否满足某些规则的时候,非常的好用 在文本中查找满足要求的内容 字…

2022年12月 C/C++(六级)真题解析#中国电子学会#全国青少年软件编程等级考试

C/C++编程(1~8级)全部真题・点这里 第1题:区间合并 给定 n 个闭区间 [ai; bi],其中i=1,2,…,n。任意两个相邻或相交的闭区间可以合并为一个闭区间。例如,[1;2] 和 [2;3] 可以合并为 [1;3],[1;3] 和 [2;4] 可以合并为 [1;4],但是[1;2] 和 [3;4] 不可以合并。 我们的任务是…

数据结构(Java实现)-反射、枚举以及lambda表达式

Java的反射(reflection)机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意方法和属性,既然能拿到那么,我们就可以修改部分…

java对时间序列每x秒进行分组

问题&#xff1a;将一个时间序列每5秒分一组&#xff0c;返回嵌套的list&#xff1b; 原理&#xff1a;int除int会得到一个int&#xff08;也就是损失精度&#xff09; 输入&#xff1a;排序后的list&#xff0c;每几秒分组值 private static List<List<Long>> get…

C语言——指针基本语法

概述 内存地址 在计算机内存中&#xff0c;每个存储单元都有一个唯一的地址(内存编号)。 通俗理解&#xff0c;内存就是房间&#xff0c;地址就是门牌号 指针和指针变量 指针&#xff08;Pointer&#xff09;是一种特殊的变量类型&#xff0c;它用于存储内存地址。 指针的实…

Flutter 项目结构文件

1、Flutter项目的文件结构 先helloworld项目&#xff0c;看看它都包含哪些组成部分。首先&#xff0c;来看一下项目的文件结构&#xff0c;如下图所示。 2、介绍上图的内容。 -litb/main.dart文件&#xff1a;整个应用的入口文件&#xff0c;其中的main函数是整个Flutter应…