【LVGL-消息框部件(lv_msgbox)】

LVGL-消息框部件(lv_msgbox)

  • ■ LVGL-消息框部件(lv_msgbox)
    • ■ 示例一:隐藏,弹窗消息框
    • ■ 示例二:
    • ■ 综合示例:

■ LVGL-消息框部件(lv_msgbox)

在这里插入图片描述
在这里插入图片描述

■ 示例一:隐藏,弹窗消息框

 lv_obj_add_flag(msgbox, LV_OBJ_FLAG_HIDDEN);                                             /* 隐藏消息框 */

在这里插入图片描述

■ 示例二:

在这里插入代码片

■ 综合示例:


static lv_obj_t *msgbox;                                                            /* 消息框 */
static lv_obj_t *slider_label;                                                      /* 音量百分比标签 */
/*************************  第一部分 音量调节滑块  ******************************/
/**
 * @brief  滑块事件回调
 * @param  *e :事件相关参数的集合,它包含了该事件的所有数据
 * @return 无
 */
static void slider_event_cb(lv_event_t *e)
{
    lv_obj_t *target = lv_event_get_target(e);                                      /* 获取触发源 */
    lv_event_code_t code = lv_event_get_code(e);                                    /* 获取事件类型 */

    if(code == LV_EVENT_VALUE_CHANGED)
    {
        lv_label_set_text_fmt(slider_label, "%d%%", lv_slider_get_value(target));   /* 获取当前值,更新音量百分比 */

        if(lv_slider_get_value(target) > 80)                                        /* 音量大于80% */
        {
            lv_obj_clear_flag(msgbox, LV_OBJ_FLAG_HIDDEN);                          /* 清除消息框隐藏属性,出现弹窗提示 */
        }
    }
}

/**
 * @brief  音量调节滑块
 * @param  无
 * @return 无
 */
static void lv_example_slider(void)
{
    /* 滑块 */
    lv_obj_t * slider = lv_slider_create(lv_scr_act());                                 /* 创建滑块 */
    lv_obj_set_size(slider, scr_act_width() / 2, 20);                                   /* 设置大小 */
    lv_obj_center(slider);                                                              /* 设置位置 */
    lv_slider_set_value(slider, 50, LV_ANIM_OFF);                                       /* 设置当前值 */
    lv_obj_add_event_cb(slider, slider_event_cb, LV_EVENT_VALUE_CHANGED, NULL);         /* 添加事件 */

    /* 百分比标签 */
    slider_label = lv_label_create(lv_scr_act());                                       /* 创建百分比标签 */
    lv_label_set_text(slider_label, "50%");                                             /* 设置文本内容 */
    lv_obj_set_style_text_font(slider_label, &lv_font_montserrat_20, LV_STATE_DEFAULT); /* 设置字体 */
    lv_obj_align_to(slider_label, slider, LV_ALIGN_OUT_RIGHT_MID, 20, 0);               /* 设置位置 */

    /* 音量图标 */
    lv_obj_t *sound_label = lv_label_create(lv_scr_act());                              /* 创建音量标签 */
    lv_label_set_text(sound_label, LV_SYMBOL_VOLUME_MAX);                               /* 设置文本内容:音量图标 */
    lv_obj_set_style_text_font(sound_label, &lv_font_montserrat_20, LV_STATE_DEFAULT);  /* 设置字体 */
    lv_obj_align_to(sound_label, slider, LV_ALIGN_OUT_LEFT_MID, -20, 0);                /* 设置位置 */
}


/*************************  第二部分 消息框  ******************************/

/**
 * @brief  消息框事件回调
 * @param  *e :事件相关参数的集合,它包含了该事件的所有数据
 * @return 无
 */
static void msgbox_event_cb(lv_event_t *e)
{
    lv_obj_t *target = lv_event_get_current_target(e);                 /* 获取当前触发源 */

    if(lv_msgbox_get_active_btn(target) == 2)                          /* 获取按钮索引 */
    {
        lv_obj_add_flag(msgbox, LV_OBJ_FLAG_HIDDEN);                   /* 隐藏消息框 */
    }
}

/**
 * @brief  消息框实例
 * @param  无
 * @return 无
 */
static void lv_example_msgbox(void)
{
    static const char *btns[] = { " ", " ", "OK", "" };

    /* 消息框整体 */
    msgbox = lv_msgbox_create(lv_scr_act(),LV_SYMBOL_WARNING " Notice","Excessive volume may damage hearing.", btns,false);
    lv_obj_set_size(msgbox, 300, 170);                                                       /* 设置大小 */
    lv_obj_center(msgbox);                                                                   /* 设置位置 */
    lv_obj_set_style_border_width(msgbox, 0, LV_STATE_DEFAULT);                              /* 去除边框 */
    lv_obj_set_style_shadow_width(msgbox, 20, LV_STATE_DEFAULT);                             /* 设置阴影宽度 */
    lv_obj_set_style_shadow_color(msgbox, lv_color_hex(0xa9a9a9), LV_STATE_DEFAULT);         /* 设置阴影颜色 */
    lv_obj_set_style_pad_top(msgbox,18,LV_STATE_DEFAULT);                                    /* 设置顶部填充 */
    lv_obj_set_style_pad_left(msgbox,20,LV_STATE_DEFAULT);                                   /* 设置左侧填充 */
    lv_obj_add_event_cb(msgbox, msgbox_event_cb, LV_EVENT_VALUE_CHANGED, NULL);              /* 添加事件 */

    /* 消息框标题 */
    lv_obj_t *title = lv_msgbox_get_title(msgbox);                                           /* 获取标题部分 */
    lv_obj_set_style_text_font(title, &lv_font_montserrat_20, LV_STATE_DEFAULT);             /* 设置字体 */
    lv_obj_set_style_text_color(title, lv_color_hex(0xff0000),LV_STATE_DEFAULT);             /* 设置文本颜色:红色 */

    /* 消息框主体 */
    lv_obj_t *content = lv_msgbox_get_content(msgbox);                                       /* 获取主体部分 */
    lv_obj_set_style_text_font(content, &lv_font_montserrat_20, LV_STATE_DEFAULT);           /* 设置字体 */
    lv_obj_set_style_text_color(content, lv_color_hex(0x6c6c6c), LV_STATE_DEFAULT);          /* 设置文本颜色:灰色 */
    lv_obj_set_style_pad_top(content,15,LV_STATE_DEFAULT);                                   /* 设置顶部填充 */

    /* 消息框按钮 */
    lv_obj_t *btn = lv_msgbox_get_btns(msgbox);                                              /* 获取按钮矩阵部分 */
    lv_obj_set_style_bg_opa(btn, 0, LV_PART_ITEMS);                                          /* 设置按钮背景透明度 */
    lv_obj_set_style_shadow_width(btn, 0, LV_PART_ITEMS);                                    /* 去除按钮阴影 */
    lv_obj_set_style_text_font(btn, &lv_font_montserrat_20, LV_PART_ITEMS);                  /* 设置字体 */
    lv_obj_set_style_text_color(btn, lv_color_hex(0x2271df),LV_PART_ITEMS);                  /* 设置文本颜色(未按下):蓝色 */
    lv_obj_set_style_text_color(btn, lv_color_hex(0xff0000),LV_PART_ITEMS|LV_STATE_PRESSED); /* 设置文本颜色(已按下):红色 */

    lv_obj_add_flag(msgbox, LV_OBJ_FLAG_HIDDEN);                                             /* 隐藏消息框 */
}

在这里插入图片描述
在这里插入图片描述

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

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

相关文章

万兆车载以太网转换器 10G/2.5G多速车载以太网转换器-MC10GM

MC10GM转换器 一、产品简要分析 2.5G,5G,10G可切换万兆/多速车载以太网转换器。采用罗森博格H-MTD标准接口类型。实现将车载以太网标准2.5/5/10G BASE-T1转换为工业级2.5/5/10G 标准以太网,进而接入电脑或工控机. 产品实现2.5/5/10G Base-T1 和2.5/5/10G Base-R之间…

Go——结构体

Go语言中没有类的概念,也不支持类的继承等面向对象的概念。Go语言中通过结构体的内嵌再配合接口比面向对象具有更高的扩展性和灵活性。 一. 类型别名和自定义类型 1.1 自定义类型 在Go语言中有一些基本的数据类型,如string,整型,…

php反序列化——pop链构造[SWPUCTF 2021 新生赛]pop [NISACTF 2022]babyserialize

构造pop链 [SWPUCTF 2021 新生赛]pop 用反推法 从后往前推 这题的最后一步很明显 只要给$admin和$passwd赋值 就会echo flag 所以反推法第一步就是要调用Getflag()函数 找到$this->w00m->{$this->w22m}(); $this->mw00->{$this->w22m}();的意思是调用当…

中科数安|企业内部核心数据、技术资料透明加密系统,防止外泄

#文件防泄密软件# 中科数安公司专为企业内部核心数据和技术资料的安全保驾护航,其提供的透明加密系统是一款强有力的信息安全保障工具。 中科数安 | 信息安全防泄密系统 PC地址:www.weaem.com 这套系统主要特点和功能包括: 1. **透明加密**…

你的 Python 代码需要解释一下了!

Python 是一种相对简单的编程语言。它主要以解释型语言著称,这意味着每行代码都要通过解释器逐行执行。不过在某些时候,将 Python 代码翻译成计算机可以理解的内容,然后再逐行执行,可以减少繁琐。 在这种情况下,编译器…

PyTorch 教程-快速上手指南

文章目录 PyTorch Quickstart1.处理数据2.创建模型3.优化模型参数4.保存模型5.加载模型 PyTorch 基础入门1.Tensors1.1初始化张量1.2张量的属性1.3张量运算1.3.1张量的索引和切片1.3.2张量的连接1.3.3算术运算1.3.4单元素张量转变为Python数值 1.4Tensor与NumPy的桥接1.4.1Tens…

langchin-chatchat部分开发笔记(持续更新)

大模型相关目录 大模型,包括部署微调prompt/Agent应用开发、知识库增强、数据库增强、知识图谱增强、自然语言处理、多模态等大模型应用开发内容 从0起步,扬帆起航。 大模型应用向开发路径及一点个人思考大模型应用开发实用开源项目汇总大模型问答项目…

uniapp 苹果支付内购示例代码

// #ifdef APPasync init() {uni.showLoading({title: 检测支付环境...});try {// 初始化,获取iap支付通道await this._iap.init();// 从苹果服务器获取产品列表this.productList await this._iap.getProduct();this.productList[0].checked true;this.productId …

阿里云部署宝塔,设置了安全组还是打不开。

1.在安全组是开放正确的端口好。8888要开,但是不只是开放8888,举个例子,https://47.99.53.222:17677/49706cf7这个,要开放17677这个端口号。 2.安全组要挂载到实例上,从三个点的进入点击管理实例,加到对应的…

独立站推广新策略:从精准定位到网红合作,开启品牌“长红”之路

随着互联网技术的飞速发展和消费者购物习惯的不断变化,独立站作为一种新型的电商模式,正逐渐成为品牌商家们拓展市场、提升品牌影响力的重要途径。然而,如何在竞争激烈的市场中脱颖而出,实现从短期流量吸引向长期品牌建设的转变&a…

为响应国家号召,搜维尔科技开启虚拟仿真实验室设备升级改造服务

近日,国务院发布了关于《推动大规模设备更新和消费品以旧换新行动方案》,该通知的发布表现出国家对于科技创新事业的高度重视。各行各业都在积极响应国家号召,加快数字化转型和设备升级与更新步伐。搜维尔科技为响应国家号召,将开…

如何使用CHAT-AI?

伴随着CHAT-GPT的出现,人们都喜欢上了CHAT-AI。嗯?你还不会用?! 教程来喽! 首先点这里的 … 点击扩展 接着选择“管理扩展” 点击之后搜索“wetab” 最后你需要注册一个号,然后就可以使用CHAT-AI啦&#x…

28位驻华大使、公使参访苏州金龙 点赞刚刚全球发布的新V系大巴

3月26日下午,由外交部组织的“驻华使节团参访江苏”活动走进苏州金龙。来自28个国家和国际组织的驻华大使、公使参观了苏州金龙展厅,并试乘体验了苏州金龙全新V系大巴。外交部中国政府欧洲事务特别代表吴红波,外交部礼宾司、翻译司、非洲司、…

产品力升级:揭秘产品力课程,打造竞争力强劲的爆款产品

在当今激烈的市场竞争中,产品力是企业成功的关键之一。那么,什么是产品力?什么是产品力课程?产品力课程如何帮助企业打造竞争力强劲的爆款产品?本文将为您一一解答。 什么是产品力? 产品力指的是一个产品在市场竞争中所具备的能力和优势。…

浏览器导出excel

做java web项目时&#xff0c;经常遇到需要在页面上点击导出按钮&#xff0c;然后直浏览器接下载下来一个excel文档。 比如一个List<Person>的集合&#xff0c;需要将每个Person当做一行&#xff0c;输出到excel中去。其中Person实体类如下&#xff1a; import lombok.…

PTA-练习9

目录 实验10-4 递归实现顺序输出整数 实验10-10 十进制转换二进制 实验10-6 递归求简单交错幂级数的部分和 实验11-1-2 输出月份英文名 实验11-1-6 指定位置输出字符串 实验11-1-8 查找子串 递归的基本思路&#xff1a; 推出递归的条件或者进入递归的条件每层递归需要执行…

手把手教你绘画原型图:Axure的安装使用

&#x1f341; 作者&#xff1a;知识浅谈&#xff0c;CSDN签约讲师&#xff0c;CSDN博客专家&#xff0c;华为云云享专家&#xff0c;阿里云专家博主 &#x1f4cc; 擅长领域&#xff1a;全栈工程师&#xff0c;大模型&#xff0c;爬虫、ACM算法 &#x1f492; 公众号&#xff…

DC-3靶机

一.环境搭建 下载地址&#xff1a; http://www.five86.com/downloads/DC-3-2.zip 下载不下来的可以用迅雷输入上面的网址进行下载 虚拟机配置&#xff1a; 切换连接桥接模式为nat模式&#xff0c;启动靶机&#xff0c;出现如下报错&#xff0c;进入虚拟机配置 选中CD/DVD&…

通过Appium和Xcode Accessibility Inspector获取iOS应用元素定位的方法

在 iOS 移动应用程序上使用选择器查找元素定位是我们在移动端 UI 自动化测试的先决条件。 但是&#xff0c;由于应用程序内容在原生 iOS 应用程序中的呈现方式&#xff0c;我们可以用来定位应用程序元素的选择器与 Web 浏览器元素有很大不同。 在本文中&#xff0c;我们将了解 …

百元开放式耳机怎么选?五款入手不亏的上乘产品推荐

耳机已经成为了我们生活中不可或缺的一部分&#xff0c;无论是通勤路上的音乐陪伴&#xff0c;还是家中观影的沉浸体验&#xff0c;一款优质的耳机都能为我们带来极大的享受。而在众多耳机类型中&#xff0c;开放式耳机因其独特的声场表现和舒适的佩戴体验&#xff0c;受到了越…