LVGL实现按键和点击事件

1编写流程

1-1创建屏幕对象

1-2创建按钮对象并将屏幕对象给按钮

1-3创建一个文本对象,并将按钮对象给文本

1-4设置文本

1-5为按钮添加事件

2源码

//按键回调函数
void event_handler(lv_event_t* event){int code = lv_event_get_code(event);//获取事件类型的代码lv_obj_t* obj=lv_event_get_target(event);//获取事件的对象的地址//lv_obj_t* data=lv_event_get_user_data(event);//获取传输的数据printf("target:%p \n",obj);if(code == LV_EVENT_CLICKED){//判断是否是点击事件printf("110\r\n");}
}
//实现按键
void demo_button(){lv_obj_t* screen=lv_scr_act();//创建按钮对象lv_obj_t* button=lv_btn_create(screen);//为按键添加一个文本lv_obj_t* label=lv_label_create(button);//创建一个文本对象并将按键对象添加进去lv_label_set_text(label,"Hello");//添加一个文本//居中lv_obj_center(button);//给按钮添加点击事件//1,按钮控件名  2,回调函数 3,监听什么事件 4,传入什么数据lv_obj_add_event_cb(button,event_handler,LV_EVENT_CLICKED,NULL);printf("dui_xiang_di_zi %p",button);//打印地址//%p 是格式化输出宏,用于打印指针的值。
}

3重点的详细资料

  1. int code = lv_event_get_code(event);

    这行代码用于获取事件代码,它表示发生了什么类型的事件。lv_event_get_code 是LVGL的一个函数,它接受一个 lv_event_t 类型的参数 event,并返回一个整数值,这个整数值对应于事件的类型。

    • event:这是一个指向 lv_event_t 结构体的指针,它包含了事件的所有相关信息。
    • code:这是一个整数变量,用于存储事件代码。常见的事件代码包括:
      • LV_EVENT_PRESSED:当对象被按下时。
      • LV_EVENT_CLICKED:当对象被点击(按下并释放)时。
      • LV_EVENT_RELEASED:当对象被释放时。
      • LV_EVENT_LONG_PRESSED:当对象被长按时。
      • 等等。

    通过检查 code 的值,你可以确定应该对事件做出什么样的响应。

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

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

相关文章

SpringBoot驱动的毕业生招聘信息平台

1 系统概述 1.1 概述  随着社会的快速发展,计算机的影响是全面且深入的。人们的生活水平不断提高,日常生活中毕业生对招聘平台方面的要求也在不断提高,需要招聘平台的人数更是不断增加,使得毕业生信息招聘平台的开发成为必需而且…

Mac程序坞窗口预览的方法来了

当你同一程序内打开的窗口过多的时候,在Mac上想要切换就只能打开程序然后在内部进行切换,没办法直达你想要打开的窗口,多了一步的操作,那么如何才能一步到位呢 如果程序坞有应用程序的缩略图,是不是就可以一步到位了&…

【C/C++】结构体的定义

零.导言 在上一篇博客中,我讲解了qsort函数,并在其中提到了结构体数组的排序,那么结构体是什么呢? 接下来我将详细讲解结构体的定义。 一,结构体是什么? 结构体是自定义的数据类型,可以存放自定义的数据。…

JavaScript 中如何识别异步函数?

我们如何判断一个函数是否是异步函数(async function)呢? 遇到问题的思考过程是什么呢,首先需要找到二者的区别,那就打印看一下,然后在思考如何做。 由此可以看出二者的差异。 1、使用 typeof 检查函数类…

springboot学生请假管理系统-计算机毕业设计源码12712

摘 要 从20年代开始,计算机在人们的生活和工作中广泛应用,成为了人们生活、工作的得力助手。计算机深入到每个家庭和每个工作场所,网络办公和网络教学取代了传统的手工记录和管理方式。使用计算机办公可以不受时间和地点限制,通过…

频率限制:WAF保护网站免受恶意攻击的关键功能

频率限制(Rate Limiting)是一项有效的安全措施,用于控制每个 IP 地址的访问速率,以防止恶意用户利用大量请求对网站进行攻击,例如防止 CC 攻击等。频率限制不仅能保护网站资源,还能提升服务的稳定性。 下面…

ClickHouse 神助攻:纽约城市公共交通管理(MTA)数据应用挑战赛

本文字数:13198;估计阅读时间:33 分钟 作者:The PME Team 本文在公众号【ClickHouseInc】首发 我们一向对开放数据挑战充满热情,所以当发现 MTA(城市交通管理局)在其官网发起了这样的挑战时&…

什么是数据中心?

数据中心是一个专门用于容纳大量联网计算机设备的设施,这些设备共同协作,以处理、存储和传输数据。现代社会中,大部分高科技公司都依赖数据中心来提供在线服务,例如网站、应用程序和云服务等。可以说,数据中心是互联网…

【论文精读】ID-like Prompt Learning for Few-Shot Out-of-Distribution Detection

🌈 个人主页:十二月的猫-CSDN博客 🔥 系列专栏: 🏀论文精读_十二月的猫的博客-CSDN博客 💪🏻 十二月的寒冬阻挡不了春天的脚步,十二点的黑夜遮蔽不住黎明的曙光 注:下文…

【文心智能体 | AI大师工坊】如何使用智能体插件,完成一款旅游类智能体的开发,来体验一下我的智能体『​​​​​​​背包客』

🚀『背包客』点击前往体验:https://mbd.baidu.com/ma/s/d7RHMlWh 最近参加了百度文心智能体平台AI大师工坊🎉活动,在这个活动中,我利用文心平台提供的各种插件、大模型等工具,打造了一个工具类的智能体应用…

理解ADC:为什么量化噪声也会产生谐波?附带介绍 Dither(抖动)

前言 今天继续从经典的 ADI 《MT-001》说起,通常情况下量化噪声是白噪声,但如果量化噪声与输入信号之间存在相关性,就不能被当做白噪声对待。 文中举了一个有意思的例子:理想 ADC 的采样频率为 80 MSPS ,一种情况输入…

从0到1构建 UniApp + Vue3 + TypeScript 移动端跨平台开源脚手架

🚀 作者主页: 有来技术 🔥 开源项目: youlai-mall 🍃 vue3-element-admin 🍃 youlai-boot 🍃 vue-uniapp-template 🌺 仓库主页: GitCode💫 Gitee &#x1f…

Docker部署教程:打造流畅的斗地主网页小游戏

Docker部署教程:打造流畅的斗地主网页小游戏 一、项目介绍项目简介项目预览二、系统要求环境要求环境检查Docker版本检查检查操作系统版本三、部署斗地主网页小游戏下载镜像创建容器检查容器状态查看容器日志安全设置四、访问斗地主网页小游戏五、总结一、项目介绍 项目简介 …

计算机视觉常用数据集Cityscapes的介绍、下载、转为YOLO格式进行训练

我在寻找Cityscapes数据集的时候花了一番功夫,因为官网下载需要用公司或学校邮箱邮箱注册账号,等待审核通过后才能进行下载数据集。并且一开始我也并不了解Cityscapes的格式和内容是什么样的,现在我弄明白后写下这篇文章,用于记录…

【机器学习】Lesson3 - 逻辑回归(LR)二分类

目录 背景 一、适用数据集 1. 数据集选择 1.1 领域 1.2 数据集维度 1.3 记录行(样本数量) 2. 本文数据集介绍 3. 数据集下载 注意 二、逻辑回归的基本原理 1. 目的 2. Sigmoid 函数 3. 类别划分 4. 召回率 三、代码 1. 导入所需包&数…

kubernetes——part2-3 使用RKE构建企业生产级Kubernetes集群

使用RKE构建企业生产级Kubernetes集群 一、RKE工具介绍 RKE是一款经过CNCF认证的开源Kubernetes发行版,可以在Docker容器内运行。 它通过删除大部分主机依赖项,并为部署、升级和回滚提供一个稳定的路径,从而解决了Kubernetes最常见的安装复杂…

重学SpringBoot3-Spring WebFlux之HttpHandler和HttpServer

更多SpringBoot3内容请关注我的专栏:《SpringBoot3》 期待您的点赞👍收藏⭐评论✍ 重学SpringBoot3-Spring WebFlux之HttpHandler和HttpServer 1. 什么是响应式编程?2. Project Reactor 概述3. HttpHandler概述3.1 HttpHandler是什么3.2 Http…

3D Gaussian Splatting代码详解(三):模型构建,实现3D 高斯椭球体的克隆和分裂

3 模型构建 3.4 根据梯度对3D gaussian 进行增加或删减 (1) 对3D高斯分布进行密集化和修剪的操作 def densify_and_prune(self, max_grad, min_opacity, extent, max_screen_size):"""对3D高斯分布进行密集化和修剪的操作:param max_g…

无人机协同控制技术详解!

一、算法概述 无人机协同控制技术算法是指通过综合运用通信、控制、优化等多学科知识,实现对多个无人机的协同控制和任务规划。这些算法通常基于各种数学模型和控制理论,如线性代数、微分方程、最优控制等,旨在确保无人机能够相互协作&#…

【热门主题】000013 C++游戏开发全攻略

前言:哈喽,大家好,今天给大家分享一篇文章!并提供具体代码帮助大家深入理解,彻底掌握!创作不易,如果能帮助到大家或者给大家一些灵感和启发,欢迎收藏关注哦 💕 目录 【热…