简单的LVGL按键例程

这篇具有很好参考价值的文章主要介绍了简单的LVGL按键例程。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

以下是一个简单的LVGL按键例程,使用LVGL的按键事件来处理按钮的单击和长按操作。

#include "lvgl/lvgl.h"

void btn_click_action(lv_obj_t *obj) {
    // 处理按钮单击事件
}

void btn_long_press_action(lv_obj_t *obj) {
    // 处理按钮长按事件
}

int main(void) {

    lv_init(); // 初始化LVGL库

    lv_obj_t *btn = lv_btn_create(lv_scr_act()); // 创建一个按钮并添加到当前活动屏幕上
    lv_obj_set_pos(btn, LV_COORD_CENTER, LV_COORD_CENTER); // 将按钮置于屏幕中心
    lv_obj_set_size(btn, 100, 50); // 设置按钮尺寸为100x50

    lv_obj_t *label = lv_label_create(btn); // 在按钮上创建一个标签
    lv_label_set_text(label, "Click me!"); // 设置标签文本内容

    lv_obj_set_event_cb(btn, [](lv_obj_t * obj, lv_event_t event) { // 注册按钮事件回调函数
        if (event == LV_EVENT_CLICKED) { // 按钮单击事件
            btn_click_action(obj);
        } else if (event == LV_EVENT_LONG_PRESSED) { // 按钮长按事件
            btn_long_press_action(obj);
        }
    });

    while (1) { // 进入主循环
        lv_tick_inc(5); // 处理LVGL库的时间基准
        lv_task_handler(); // 处理LVGL库的任务
        // 在这里可以添加其他应用逻辑
    }

    return 0;
}

在这个例程中,我们创建了一个名为 btn 的按钮对象,并将其添加到当前活动屏幕上。然后,在按钮上创建了一个标签并设置了文本内容。接着,我们使用 lv_obj_set_event_cb() 函数注册了按钮事件回调函数,并在其中处理了按钮的单击和长按事件。

在主循环中,我们使用 lv_tick_inc() 函数和 lv_task_handler() 函数来处理LVGL库的时间基准和任务。这些函数需要在主循环中定期调用,以确保LVGL库能够正常运行。在主循环中还可以添加其他应用逻辑,例如处理网络连接、传感器数据等。文章来源地址https://www.toymoban.com/news/detail-768736.html

到了这里,关于简单的LVGL按键例程的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 嵌入式Linux下LVGL的移植与配置

    ​​​​​​ https://github.com/lvgl/lvgl git下载方式 git clone https://github.com/lvgl/lvgl.git 链接:https://pan.baidu.com/s/1jyqIennsQpv-RB4RyKvZyg?pwd=c68e  提取码:c68e 注意: 以下的配置均基于个人移植的sdk上修改. 解压sdk源码后修改Makefile文件,修改如下 直接修改编译器(编译器需要添加进系统的

    2024年02月13日
    浏览(46)
  • LVGL学习(5):物理按键切换焦点之焦点保存和恢复

    最近在做的项目用到了LVGL,基于实际产品使用的特殊情况,屏幕没有接触摸屏,而是使用物理按键来控制所有的object,而且硬件上只有四个按键,功能分别是:返回、左/上、右/下和确定,在切换界面的过程中,也引出了一个焦点切换问题。

    2024年02月08日
    浏览(35)
  • LVGL学习笔记 28 - 键盘keyboard

    目录 1. 设置关联文本框 2. 设置模式 2.1 LV_KEYBOARD_MODE_TEXT_LOWER 2.2 LV_KEYBOARD_MODE_TEXT_UPPER 2.3 LV_KEYBOARD_MODE_SPECIAL 2.4 LV_KEYBOARD_MODE_NUMBER 2.5 LV_KEYBOARD_MODE_USER_1 ~ LV_KEYBOARD_MODE_USER_4 3. 使能弹窗模式 4. 更改按键布局 5. 事件 键盘是一个特殊的按键矩阵,自身实现了按键(map)映射和其他

    2024年02月13日
    浏览(32)
  • LVGL——文本区域与键盘

    目录 一、文本区域 1、部件组成 2、部件操作 1、创建 2、添加文本 3、光标设置 4、删除文本 5、设置模式 6、限制输入 7、设置占位符 8、获取文本 9、比对文本内容 二、键盘 1、部件组成 2、部件操作 1、创建 2、关联文本框 3、设置按键弹窗 4、设置键盘类型 三、项目案例 主

    2024年04月15日
    浏览(30)
  • 带你了解LVGL:一个开源的嵌入式图形库

    嵌入式系统是一种将计算机硬件和软件集成在一个特定的应用中的系统,例如智能手机、智能手表、汽车仪表盘等。嵌入式系统通常需要与用户进行交互,因此需要一个友好和易用的图形用户界面(GUI)。然而,开发一个高质量的GUI并不容易,因为嵌入式系统通常有限的资源

    2024年02月09日
    浏览(50)
  • 嵌入式图形库开发绚丽界面(lvgl、emwin、awtk)

            早些年的单片机开发中,很多都是使用文字菜单界面,这种界面让人感觉非常的朴实无华,内容言简意赅,如果使用图形库进行开发,你的产品一下子就让别人觉得有点高级,更容易去接收它。对于现在来说,很多的嵌入式图形库都可以做出绚丽的界面,占用RAM小,

    2024年01月25日
    浏览(37)
  • [esp32 + LVGL]物理按键控制屏幕上开关和LED闪烁

    IO0 对应按键 控制 IO2LED闪烁,同时当LED亮的时候开关闭合,当LED灭的时候LED闪烁。 为什么这么做,因为手里没有触摸屏。 首先我们要明白开关闭合的原理,对于触摸屏来说,当你触摸开关的时候会触发点击事件,同时给开关控件添加点击事件。 添加点击事件,也就是开关闭

    2024年02月13日
    浏览(32)
  • LINUX LVGL 使用键盘方向键选择控件

    1.1: 比如屏幕上有按钮 button1 和button2 通过创建一个组 group 就可以实现选中按键1或者按键2 新建一个组,放入按键的代码,我是写在ui.c 里面创建组件的地方那儿 1.2: 打开宏定义支持键盘功能 1.3: 新建一个输入设备,注册读取键盘的回调函数, 在main.c的 hal_init 函数里面修改 1.4

    2024年02月15日
    浏览(28)
  • Melis4.0[D1s]:7.lvgl添加物理按键

    参考资料: 1.韦东山老师B站视频:3-3-1使用物理按键代替触摸(groups) 2.作者:zhbi98,文章:lvgl8.x 对接实体按键驱动 3.百问网lvgl中文文档:Keypad and encoder(键盘和编码器) 搞了2天,没有搞定D1s在Melis下的I2c驱动(gt911触摸屏)。先测试物理按键。 在前面的文章中Melis4.0[D1s]:1

    2023年04月20日
    浏览(22)
  • LVGL:拓展部件——键盘 lv_keyboard

    此控件特点: 特殊Button矩阵: lv_keyboard 本质上是一个经过定制的 按钮矩阵 控件。每个按钮都可以独立触发事件或响应。 预定义的键映射: lv_keyboard 自带了一套预设的 按键布局 和 对应的字符映射表 ,开发者可以根据需要选择或自定义这些键映射。 与 lv_textarea 配合使用:

    2024年03月20日
    浏览(29)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包