LVGL 控件之消息框(lv_msgbox)

news2024/11/15 15:43:46

目录

  • 一、概述
  • 二、消息框
    • 1、创建消息框
    • 2、获取消息框的组成部分
    • 3、关闭消息框部件
    • 4、消息框部件事件
    • 5、API 函数


一、概述

消息框部件是由多个小部件构建而成的,包括:lv_objlv_btnlv_labellv_btnmatrix 部件,示意图如下所示:

消息框充当弹出窗口。它们由一个内容区域构建而成,该区域有一个辅助工具用于添加文本,一个可选的头部(可以包含标题、关闭按钮和其他按钮),以及一个可选的底部配有按钮。

文本将被自动折行为多行,并且高度将被自动设置。如果手动设置了高度,内容将变为可滚动的。

消息框可以是模态的(阻止对屏幕其余部分的单击) 或者不是模态的。

二、消息框

1、创建消息框

用户需要创建消息框部件,可以调用 lv_msgbox_create 函数,该函数具有五个形参,如下所示:

  1. parent:父对象,如果该形参为 NULL,则该消息框部件为模态;
  2. title:消息框的标题;
  3. txt:消息框的文本;
  4. btn_txts[]:按钮文本的数组;
  5. add_close_btn:添加/不添加关闭按钮。

接下来,我们以简单示例来理解消息框的创建,示例代码如下所示:

static const char *btns[] = { "Apply", "Close", "" };

void my_gui(void)
{
    lv_obj_t *lv_msgbox = lv_msgbox_create(lv_scr_act(), "Title", "Context", btns, true);

    lv_obj_center(lv_msgbox);
}

模态与非模态

模态就是阻止对屏幕其余部分的单击,反之,非模态就是不阻止。下面看例子:

static const char *btns[] = { "Apply", "Close", "" };

void my_gui(void)
{
    lv_obj_t *lv_msgbox = lv_msgbox_create(lv_scr_act(), "Title", "Context", btns, true);
    lv_obj_t *btn = lv_btn_create(lv_scr_act());
    lv_obj_set_pos(btn, 400, 100);

    lv_obj_center(lv_msgbox);
}


这个时候还能点击上面的蓝色的按钮,所以此消息框是非模态的。

而做出如下修改后:

lv_obj_t *lv_msgbox = lv_msgbox_create(NULL, "Title", "Context", btns, true);

除消息框的其它地方都加了一层灰色的阴影,而上面的按钮也无法点击了。这个时候,这个消息框就是模态的。

2、获取消息框的组成部分

前面讲了消息框的组成部分。如果用户需要设置这些组成部分的样式,则需要先将它们获取回来,获取组成部分的相关函数如下:

lv_obj_t * lv_msgbox_get_title(lv_obj_t * mbox);
lv_obj_t * lv_msgbox_get_close_btn(lv_obj_t * mbox);
lv_obj_t * lv_msgbox_get_text(lv_obj_t * mbox);
lv_obj_t * lv_msgbox_get_btns(lv_obj_t * mbox);

3、关闭消息框部件

如果用户想手动关闭消息框,可调用 lv_msgbox_close 函数进行设置。

4、消息框部件事件

消息框部件常用的事件类型为 LV_EVENT_VALUE_CHANGED

5、API 函数

函数描述
lv_msgbox_create()创建消息框部件
lv_msgbox_get_title()获取消息框标题文本对象
lv_msgbox_get_close_btn()获取关闭按钮对象
lv_msgbox_get_text()获取提示文本对象
lv_msgbox_get_content()获取消息框内容对象
lv_msgbox_get_btns()获取按键矩阵对象
lv_msgbox_get_active_btn()获取当前按下的按钮索引
lv_msgbox_get_active_btn_text()获取当前按下的按钮文本
lv_msgbox_close()关闭消息框
lv_msgbox_close_async()异步关闭消息框

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

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

相关文章

错误使用排序导致分页数据重复

1. 现象 分页返回数据的时候,发现第一页和第二页的数据有重复的,如姓名中的“某颖文”在第一和和第二页都显示了。 第一页: 第二页: 2. 原因 因为排序的的字段为“departmentCode”,该字段是重复不唯一的&#xff0…

GPIO之EMIO按键控制LED——ZYNQ学习笔记3

一、EMIO简介 ZYNQ GPIO 接口信号被分成四组,分别是从 BANK0 到 BANK3。其中 BANK0 和 BANK1 中共计 54个信号通过 MIO 连接到 ZYNQ 器件的引脚上,这些引脚属于 PS 端; 而 BANK2 和 BANK3 中共计 64 个信号则通过 EMIO 连接到了 ZYNQ 器件的 …

Spring Security学习

系列文章目录 第一章 基础知识、数据类型学习 第二章 万年历项目 第三章 代码逻辑训练习题 第四章 方法、数组学习 第五章 图书管理系统项目 第六章 面向对象编程:封装、继承、多态学习 第七章 封装继承多态习题 第八章 常用类、包装类、异常处理机制学习 第九章 集…

吸烟行为检测、重点区域吸烟检测、吸烟检测算法样本标注

吸烟检测算法主要用于公共场所、工作场所和家庭环境中的吸烟行为监控,通过图像识别技术来检测和识别吸烟行为,以确保环境卫生和公共安全。这种技术可以帮助管理者实时监控吸烟行为,及时采取措施,减少二手烟的危害。 一、技术实现…

短视频矩阵源码/短视频矩阵系统搭建/源码开发知识分享

集星云推智剪获客系统,通过自主研发的高效发布模式,为企业提供稳定的接口与自动化操作,助力企业实现短视频矩阵的构建。该系统整合了十大核心功能,包括AI辅助文案撰写、视频剪辑、智能去重、内容拆分、文字转语音、文本提取、批量…

2024源代码加密软件TOP10分享|企业源代码加密软件

在现代企业的数字化转型过程中,源代码作为企业核心知识产权之一,至关重要。为了防止数据泄漏、外部攻击以及内部违规操作,企业越来越关注源代码的加密和保护。本文将为大家介绍2024年最受欢迎的十大源代码加密软件,帮助企业更好地…

【信息论基础第三讲】再谈离散信源的信息测度之熵的性质多符号信源的信息测度

一、Piece Of Cake 1、离散信源X的熵是H(X)是一个常数而不是一个变量 解释:离散信源的熵也就是自信息I(X)的数学期望,即H(X) E[I(Xi)],而通过概率论的知识我们知道数学期望是一个常数,故熵也是一个常数。 2、八元编码系统&…

音频3A——初步了解音频3A

文章目录 前言一、3A使用的场景和原理1.AEC2.AGC3.ANS/ANR4.硬件3A和软件3A的区别1)层级不同2)处理顺序不同3)优缺点 5.处理过程 二、3A带来的问题三、开源3A算法总结 前言 在日常的音视频通话过程中,说话的双端往往会面对比较复…

【后端开发】JavaEE初阶—线程安全问题与加锁原理(超详解)

前言: 🌈上期博客:【后端开发】JavaEE初阶—Theard类及常见方法—线程的操作(超详解)-CSDN博客 🌈感兴趣的小伙伴看一看小编主页:GGBondlctrl-CSDN博客 🌈小编会在后端开发的学习中不…

综合体第三题(DHCP报文分析)

DHCP(一般情况下) 某公司网络DHCP服务器地址为192.168.0.2,可分配IP地址为192.168.0.6-192.168.0.254,缺省网关的地址为192.168.0.1,DNS服务器地址为192.168.0.2。网络中某客户机从服务器获取IP地址后,在客…

初识爬虫8

1.selenium的作用和工作原理 2. 使用selenium,完成web浏览器调用 # -*- coding: utf-8 -*- # 自动化测试工具,降低难度,性能也降低 from selenium import webdriverdriver webdriver.Edge()driver.get("https://www.itcast.cn/")…

Python语言基础教程(上)4.0

✨博客主页: https://blog.csdn.net/m0_63815035?typeblog 💗《博客内容》:.NET、Java.测试开发、Python、Android、Go、Node、Android前端小程序等相关领域知识 📢博客专栏: https://blog.csdn.net/m0_63815035/cat…

新规2027年生效 美国禁止中国智能网联汽车软硬件

当地时间9月23日,美国商务部工业和安全局(BIS)发布了一项拟议规则制定通知(NPRM),该通知将禁止销售或进口集成特定硬件和软件的联网车辆,或单独销售这些组件,这些硬件和软件与中国或…

增强网络威胁防御能力的云安全新兴技术

一些行业专家强调了基于云的运营的独特网络安全需求,并指出保护敏感数据与传统的本地网络不同。尽管新兴技术并没有改变网络安全专业人员与犯罪分子之间持续的斗争,但它们提高了赌注,使斗争变得更加复杂。 如今,我们面对的是技术…

CSS | 如何来避免 FOUC(无样式内容闪烁)现象的发生?

一、什么是 FOUC(无样式内容闪烁)? ‌FOUC(Flash of Unstyled Content)是指网页在加载过程中,由于CSS样式加载延迟或加载顺序不当,导致页面出现闪烁或呈现出未样式化的内容的现象。‌ 这种现象通常发生在HTML文档已经加载&…

为什么数据需要 QA 流程

当有人问我做什么工作时,我会说我是一名数据质量保证 (QA) 工程师。他们并不真正理解我的意思。“嗯,我做数据测试,”我试图解释,但常常无济于事。我有一些从事技术和软件开发的朋友,他们不太了解数据测试是什么&#…

[LLM 学习笔记] Transformer 基础

Transformer 基础 Transformer 模型架构 主要组成: Encoder, Decoder, Generator. Encoder (编码器) 由 N N N 层结构相同(参数不同)的 EncoderLayer 网络组成. In : [ b a t c h _ s z , s e q _ l e n , d m o d e l ] \textbf{In}: [batch\_sz, seq\_len, d_{model}] I…

【WorldView系列卫星】

WorldView系列卫星 WorldView系列卫星是美国DigitalGlobe公司推出的一系列先进商业遥感卫星,旨在提供高分辨率的地球成像服务。该系列卫星以其卓越的成像能力,如高分辨率、快速重访时间和宽幅扫描能力,引领了地球观测技术的新标准。以下是对…

LCD1602

LCD1602 是一种工业字符型液晶显示屏,能够同时显示 16x2 即 32 个字符。 LCD的显示控制 通过向 LCD1602 发送指令和数据来控制其显示内容。指令包括清屏、设置光标位置、显示模式等;数据则是要显示的字符的 ASCII 码。LCD1602 内部有一个控制器&#x…

el-form动态标题和输入值,并且最后一个输入框不校验

需求:给了固定的label,叫xx单位,要输入单位的信息,但是属性名称都一样的,UI画图也是表单的形式,所以改为动态添加的形式,实现方式也很简单,循环就完事了,连着表单校验也动…