合宙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 指向日历对象的指针

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

WIFI与BT的PCB布局布线注意事项

1、模块整体布局时,WIFI模组要尽量远离DDR、HDMI、USB、LCD电路以及喇叭等易干扰模块或连接座; 2、晶体电路布局需要优先考虑,布局时应与芯片在同一层并尽量靠近放置以避免打过孔,晶体走线尽可能的短,远离干扰源&…

C# 跨线程访问窗体控件

在不加任何修饰的情况下,C# 默认不允许跨线程访问控件,实际在项目开发过程中,经常使用跨线程操作控件属性,需要设置相关属性才能正确使用,两种方法设置如下: 方法1:告诉编译器取消跨线程访问检…

视频汇聚/视频云存储/视频监控管理平台EasyCVR视频平台添加萤火云设备的具体操作步骤

安防视频监控/视频集中存储/云存储/磁盘阵列EasyCVR平台可拓展性强、视频能力灵活、部署轻快,可支持的主流标准协议有国标GB28181、RTSP/Onvif、RTMP等,以及支持厂家私有协议与SDK接入,包括海康Ehome、海大宇等设备的SDK等。平台既具备传统安…

CData Drivers for SAS xpt Crack

CData Drivers for SAS xpt Crack 使用基于标准的驱动程序,加入数据库、报告工具和自定义程序中的实时SAS xpt(XPORT)数据文件。 与BI分析、报告、ETL工具和自定义解决方案集成。 适用于SAS xpt的CData驱动程序。神奇的功能: BI和分析 我们的驱动程序是将…

电子科大软件系统架构设计——系统分析与设计概述(含课堂作业、练习答案)

系统分析与设计概述 信息系统概述 what 信息系统是一种能够完成对业务数据进行采集、转换、加工、计算、分析、传输、维护等信息处理,并能就某个方面问题给用户提供信息服务的计算机应用系统。 组成 信息化基础设施(计算机、计算机网络、服务器、系统…

零信任安全模型详解:探讨零信任安全策略的原理、实施方法和最佳实践,确保在网络中实现最小特权原则

在当今日益复杂和危险的网络环境中,传统的网络安全模型已经不再能够满足对抗不断进化的威胁。零信任安全模型应运而生,以其强调“不信任,始终验证”的理念,成为了当今信息技术领域中的热门话题。本文将深入探讨零信任安全模型&…

JVM内存模型介绍

java内存中变量的存储位置 局部变量:方法中的局部变量存在于栈内存。每当程序调用一个方法时,系统都会为该方法建立一个方法栈,所在方法中声明的变量就放在方法栈中,方法结束系统会销毁该方法栈,在该方法中声明的变量随…

基础知识回顾:借助 SSL/TLS 和 NGINX 进行 Web 流量加密

原文作者: Robert Haynes 原文链接: 基础知识回顾:借助 SSL/TLS 和 NGINX 进行 Web 流量加密 NGINX 唯一中文官方社区 ,尽在 nginx.org.cn 网络攻击者肆无忌惮、作恶多端,几乎每天都有网络入侵、数据窃取或勒索软件攻击…

华为eNSP模拟器中,路由器如何添加serial接口

在ensp模拟器中新建拓扑后,添加2个路由器。 在路由器图标上单击鼠标右键,选择设置选项。 在【视图】选项卡的【eNSP支持的接口卡】窗口查找serial接口卡。 选择2SA接口卡,将其拖动到路由器空置的卡槽位。 如上图所示,已经完成路由…

【LeetCode题目详解】第八章 贪心算法 part05 435. 无重叠区间 763.划分字母区间 56. 合并区间 (day36补)

本文章代码以c为例! 一、力扣第435题:无重叠区间 题目: 给定一个区间的集合 intervals ,其中 intervals[i] [starti, endi] 。返回 需要移除区间的最小数量,使剩余区间互不重叠 。 示例 1: 输入: intervals [[1,…

Python爬虫乱码问题之encoding和apparent_encoding的区别

encoding是从http中的header中的charset字段中提取的编码方式,若header中没有charset字段则默认为ISO-8859-1编码模式,则无法解析中文,这是乱码的原因 apparent_encoding会从网页的内容中分析网页编码的方式,所以apparent_encodi…

学生信息管理系统MIS(前端)

改造HTML文件 <!DOCTYPE html> <html><head><meta charset"utf-8"><title>学生信息管理系统MIS</title><!-- link在HTML文件中,引入外部的css文件 rel的值是固定写法,stylesheet样式表href用来指定样式表的位置--><lin…

关于C语言参数传递的

一、C语言参数传递是整体带入 #include <stdio.h> #define DF(a,b) (a2*b) int main() { int s5; int k DF((s1),(s-3)); printf("%d",k); }输出结果 原因&#xff1a; #define DF(a,b) (a2*b) int k DF((s1),(s-3)); //等效 int k DF((s1)2 * (s-3)); …

计算机网络-笔记-第三章-数据链路层

&#x1f338;章节汇总 一、第一章——计算机网络概述 二、第二章——物理层 三、第三章——数据链路层 四、第四章——网络层 五、第五章——运输层 六、第六章——应用层 目录 三、第三章——数据链路层 1、数据链路层概述&#xff08;帧&#xff09; &#xff08;1&…

【docker】容器的运行、停止、查看等基本操作

容器与镜像的区别 image镜像 Docker image是一个read-only文件&#xff0c;位于磁盘上这个文件包含文件系统&#xff0c;源码&#xff0c;库文件&#xff0c;依赖&#xff0c;工具等一些运行application所需要的文件可以理解成一个模板docker image具有分层的概念 container…

DBO优化SVM的电力负荷预测,附MATLAB代码

今天为大家带来一期基于DBO-SVM的电力负荷预测。 原理详解 文章对支持向量机(SVM)的两个参数进行优化&#xff0c;分别是&#xff1a;惩罚系数c和 gamma。 其中&#xff0c;惩罚系数c表示对误差的宽容度。c越高&#xff0c;说明越不能容忍出现误差,容易过拟合。c越小&#xff0…

芯探科技--泛自动驾驶激光雷达解决方案

泛自动驾驶应用领域: 无人配送车 无人叉车 服务机器人 无人清扫车 …… 泛自动驾驶激光雷达解决方案介绍 在中低速移动过程中,类似无人配送车、无人叉车、服务型机器人、无人清扫车等具有自动驾驶功能的车辆,其需要对周围的环境进行探测,进而实现…

【狂神】Spring5笔记(10-19)

又是美好而努力的一天呀~ __ /|* * * * * * / * * * / * * * * / * * * * * * * happy valentines day * * * * …

linux C++ 海康截图Demo

项目结构 CMakeLists.txt cmake_minimum_required(VERSION 3.7)project(CapPictureTest)include_directories(include)link_directories(${CMAKE_SOURCE_DIR}/lib ${CMAKE_SOURCE_DIR}/lib/HCNetSDKCom) add_executable(CapPictureTest ${CMAKE_SOURCE_DIR}/src/CapPictureTes…

three.js(四):react + three.js

绘制多个立方体 1.搭建reactts 项目 npx create-react-app basics-demo --template typescriptreactts 的用法可参考此链接&#xff1a; https://react-typescript-cheatsheet.netlify.app/docs/basic/setup 2.安装three依赖 npm install three types/three --save3.安装路…