ESP32 LVGL8.1 ——msgbox 消息框 (msgbox 28)

提示:本博客作为学习笔记,有错误的地方希望指正

一、textarea 简介

1.1概述 Overview

  “消息”框充当弹出窗口。它们由一个背景容器、一个标题、一个可选的关闭按钮和一个文本构建而成和可选的按钮。文本将自动分成多行,高度将自动设置为包括文本和的按钮。消息框可以是模态的(阻止屏幕其余部分的单击),也可以不是模态的。

1.2部分和风格 Parts and Styles

  
消息框是由其他小部件构建的,因此您可以查看这些小部件的文档以了解详细信息。
•背景:lv_obj
•关闭按钮:lv_btn
•标题和文本:lv_label
•按钮:lv_btnmatrix

1.3使用 Usage

1.3.1创建消息框 Create a message box

  Lv_msgbox_create (parent, title, txt, btn_txts[], add_close_btn)创建一个消息框。
如果parent为NULL,消息框将是模态的。Title和TXT是标题和文本的字符串。btn_txts []
是一个带有按钮文本的数组。例如const char * btn_txts[] = {“Ok”, “Cancel”, NULL}。
Add_colse_btn可以为true或false来添加/不添加关闭按钮。

1.3.2获取部件 Get the parts

  消息框的构建块可以通过以下函数获得:

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);

1.3.3关闭消息框Close the message box

  Lv_msgbox_close (msgbox)关闭(删除)消息框。

1.4事件 Events

  如果其中一个被点击,LV_EVENT_VALUE_CHANGED将由按钮发送。在按钮上启用了LV_OBJ_FLAG_EVENT_BUBBLE,因此您可以将事件添加到消息框本身。在事件处理程序中,lv_event_get_target(e)将返回Button矩阵和lv_event_get_current_target(e)将返回消息框。
lv_msgbox_get_active_btn(msgbox)和lv_msgbox_get_active_btn_text(msgbox)可以用来获得索引和文本的点击按钮。

1.5按键 Keys

  键对关闭按钮和按钮矩阵有影响。如果需要,可以手动将它们添加到组中。

二、msgbox API

******************
* 创建一个消息框对象
* @param父指针父或NULL创建一个全屏的模态消息框
* @param title消息框的标题
* @param TXT消息框的文本
* @param btn_txts按钮作为一个以“”元素结束的文本数组。例如:{"btn1""btn2"""}
* @param add_close_btn true:添加一个关闭按钮
* @return指向消息框对象的指针
*******************/
lv_obj_t * lv_msgbox_create(Lv_obj_t * parent, const char * title, const char * txt, const char * btn_txts[],bool add_close_btn);
//获取消息框的标题
lv_obj_t * lv_msgbox_get_title(Lv_obj_t * obj);
//获取消息框的关闭按钮
lv_obj_t * lv_msgbox_get_close_btn(Lv_obj_t * obj);
//获取消息框的文字内容
lv_obj_t * lv_msgbox_get_text(Lv_obj_t * obj);
//获取消息框的目录
lv_obj_t * lv_msgbox_get_content(Lv_obj_t * obj);
//获取消息框的按钮
lv_obj_t * lv_msgbox_get_btns(Lv_obj_t * obj);**
* 获取所选按钮的索引
* @param mbox消息框对象
* @返回按钮的索引(LV_BTNMATRIX_BTN_NONE:如果未设置)
*/
uint16_t lv_msgbox_get_active_btn(lv_obj_t * mbox);
//获取活跃的按键文本
const char * lv_msgbox_get_active_btn_text(lv_obj_t * mbox);
//关闭消息框
void lv_msgbox_close(lv_obj_t * mbox);
//关闭消息框
void lv_msgbox_close_async(lv_obj_t * mbox);

三、示例

3.1示例实现数字按键输入

static void event_cb(lv_event_t * e)
{
    lv_obj_t * obj = lv_event_get_current_target(e);
    LV_LOG_USER("Button %s clicked", lv_msgbox_get_active_btn_text(obj));
}

void lv_example_msgbox_1(void)
{
    static const char * btns[] ={"Apply", "Close", ""};//创建按钮字符
    lv_obj_t * mbox1 = lv_msgbox_create(NULL, "Hello", "This is a message box with two buttons.", btns, true);
    lv_obj_add_event_cb(mbox1, event_cb, LV_EVENT_VALUE_CHANGED, NULL);
    lv_obj_center(mbox1);
}

在这里插入图片描述

  • 0
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值