2 Star 3 Fork 1

稀风/LVGL

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
消息框部件-lv_msgbox.md 2.79 KB
一键复制 编辑 原始数据 按行查看 历史
稀风 提交于 2024-04-20 14:03 . 新增:消息框部件-lv_msgbox

消息框部件

  • 消息框即消息弹窗,它可用于消息通知、内容提示、信息确认,等等。消息框部件可以设置为模态或非模态,当用户选择模态时,消息框弹出,仅有消息框的区域可点击,其他区域的点击无效。

消息框部件的组成

  • 消息框部件是由多个小部件构建而成的,包括:lv_obj、lv_btn、lv_label 和 lv_btnmatrix 部件,示意图如下所示:

创建消息框部件

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

    • parent:父对象,如果该形参为 NULL,则该消息框部件为模态;
    • title:消息框的标题;
    • txt:消息框的文本;
    • btn_txts[]:按钮文本的数组;
    • add_close_btn:添加/不添加关闭按钮。
  • 接下来,我们以简单示例来理解消息框的创建,示例代码如下所示:

    static const char* btns[] = { "Apply", "Close", "" };
    lv_obj_t* lv_msgbox = lv_msgbox_create(NULL,"Hello","ALIENTEK", btns,true);
    lv_obj_center(lv_msgbox);
  • 在上述代码中,我们调用了 lv_msgbox_create 函数创建消息框,在该函数中设置消息框标题为“Hello”,消息的内容为“ALIENTEK”,按钮文本为“Apply”和“Close”,并使能关闭按钮。注意:如果该函数的第一个形参为 NULL,则该消息框模态。示例代码运行效果图如下所示:

获取消息框的组成部分

  • 如果用户需要设置这些组成部分的样式,则需要先将它们获取回来,获取组成部分的相关函数如下:
    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);

关闭消息框部件

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

消息框部件事件

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

消息框部件 API 函数

  • LVGL 官方提供了一些与消息框部件相关 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() 异步关闭消息框
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
1
https://gitee.com/thin-wind/lvgl.git
git@gitee.com:thin-wind/lvgl.git
thin-wind
lvgl
LVGL
main

搜索帮助

246c6175 1850385 950819b3 1850385