lv_msgbox

lv_msgbox由lv_cont容器、lv_label标签、lv_btnmatrix矩阵按键构成,lv_cont充当lv_msgbox的背景,lv_label显示lv_msgbox的消息内容,lv_btnmatrix充当lv_msgbox的底部按钮

样式

/** Message box styles. */
enum {LV_MSGBOX_PART_BG = LV_CONT_PART_MAIN,LV_MSGBOX_PART_BTN_BG = _LV_CONT_PART_REAL_LAST,LV_MSGBOX_PART_BTN,
};
typedef uint8_t lv_msgbox_style_t;

例子

#if LV_USE_MSGBOXstatic void mbox_event_cb(lv_obj_t *obj, lv_event_t evt);
static void btn_event_cb(lv_obj_t *btn, lv_event_t evt);
static void opa_anim(void * bg, lv_anim_value_t v);static lv_obj_t *mbox, *info;
static lv_style_t style_modal;static const char welcome_info[] = "Welcome to the modal message box demo!\n""Press the button to display a message box.";static const char in_msg_info[] = "Notice that you cannot touch ""the button again while the message box is open.";void lv_ex_msgbox_2(void)
{/* 创建一个按键,按键回调创建msgbox */lv_obj_t *btn = lv_btn_create(lv_scr_act(), NULL);lv_obj_set_size(btn, 200, 60);lv_obj_set_event_cb(btn, btn_event_cb);lv_obj_align(btn, NULL, LV_ALIGN_IN_TOP_LEFT, 20, 20);/* 按键上创建标签 */lv_obj_t *label = lv_label_create(btn, NULL);lv_label_set_text(label, "Display a message box!");/* 提示信息 */info = lv_label_create(lv_scr_act(), NULL);lv_label_set_text(info, welcome_info);lv_label_set_long_mode(info, LV_LABEL_LONG_BREAK); /* Make sure text will wrap */lv_obj_set_width(info, LV_HOR_RES - 10);lv_obj_align(info, NULL, LV_ALIGN_IN_BOTTOM_LEFT, 5, -5);}static void mbox_event_cb(lv_obj_t *obj, lv_event_t evt)
{char btn_id = -1;if(evt == LV_EVENT_DELETE && obj == mbox) {/* Delete the parent modal background */lv_obj_del_async(lv_obj_get_parent(mbox));mbox = NULL; /* happens before object is actually deleted! */lv_label_set_text(info, welcome_info);printf("close msgbox done\n");} else if(evt == LV_EVENT_VALUE_CHANGED) {/* A button was clicked */btn_id = lv_msgbox_get_active_btn(obj);if (btn_id == 0) //Apply{ //马上关闭消息对话框lv_msgbox_start_auto_close(mbox, 0);}else if (btn_id == 1) //Close{//定时关闭消息对话框lv_msgbox_start_auto_close(mbox, 2000);}printf("%s pressed \n", btn_id==0?"Apply":"Close");printf("start close msgbox...\n");}
}
#define MBOX_WIDTH  220     //消息对话框的宽度
#define MBOX_BTN_HEIGHT  30 //其内部每个按钮的高度
#define MBOX_BTN_NUM     2  //按钮个数static void lv_msgbox_set_msg_recolor(lv_obj_t * mbox, bool en)
{lv_msgbox_ext_t * ext = lv_obj_get_ext_attr(mbox);//获取控件的扩展字段if(ext->text) lv_label_set_recolor(ext->text, en);//ext->text 就是消息对话框内部的标签对象
}static void btn_event_cb(lv_obj_t *btn, lv_event_t evt)
{if(evt == LV_EVENT_CLICKED) {/* Create a full-screen background *///背景样式lv_style_init(&style_modal);lv_style_set_bg_color(&style_modal, LV_STATE_DEFAULT, LV_COLOR_BLACK);/* 创建基础对象obj作为背景 */lv_obj_t *obj = lv_obj_create(lv_scr_act(), NULL);lv_obj_reset_style_list(obj, LV_OBJ_PART_MAIN);lv_obj_add_style(obj, LV_OBJ_PART_MAIN, &style_modal);lv_obj_set_pos(obj, 0, 0);lv_obj_set_size(obj, LV_HOR_RES, LV_VER_RES);static const char * btns2[] = {"#5FB878 Apply#","\n", "#ff0000 Close#", ""};static lv_style_t mbox_bg_style;    //消息对话框背景样式static lv_style_t mbox_btn_bg_style;//消息对话框按键背景样式static lv_style_t mbox_btn_style;   //消息对话框按键样式//1.消息对话框背景样式lv_style_init(&mbox_bg_style);lv_style_set_bg_color(&mbox_bg_style, LV_STATE_DEFAULT, LV_COLOR_MAKE(250, 250, 250));//背景颜色lv_style_set_radius(&mbox_bg_style, LV_STATE_DEFAULT, 10);//圆角半径lv_style_set_border_width(&mbox_bg_style, LV_STATE_DEFAULT, 1);//边框宽度lv_style_set_border_color(&mbox_bg_style, LV_STATE_DEFAULT, LV_COLOR_MAKE(150, 150, 150));//边框颜色lv_style_set_shadow_color(&mbox_bg_style, LV_STATE_DEFAULT, LV_COLOR_MAKE(150, 150, 150));//阴影颜色lv_style_set_shadow_width(&mbox_bg_style, LV_STATE_DEFAULT, 6);//阴影宽度lv_style_set_pad_top(&mbox_bg_style, LV_STATE_DEFAULT, 10);//消息内容与消息对话框上边框之间的距离lv_style_set_pad_bottom(&mbox_bg_style, LV_STATE_DEFAULT, 0);//按键与对话框低边框之间的距离lv_style_set_pad_inner(&mbox_bg_style, LV_STATE_DEFAULT, 10);//消息内容与按键距离lv_style_set_pad_left(&mbox_bg_style, LV_STATE_DEFAULT, 0);//按键和背景距离lv_style_set_pad_right(&mbox_bg_style, LV_STATE_DEFAULT, 0);//按键和背景距离//2.消息对话框按键背景样式lv_style_init(&mbox_btn_bg_style);lv_style_set_border_side(&mbox_btn_bg_style, LV_STATE_DEFAULT, LV_BORDER_SIDE_TOP);lv_style_set_pad_inner(&mbox_btn_bg_style, LV_STATE_DEFAULT, 0);//消息内容与按键距离lv_style_set_pad_all(&mbox_btn_bg_style, LV_STATE_DEFAULT, 0);lv_style_set_radius(&mbox_btn_bg_style, LV_STATE_DEFAULT, 0);//直角//3.消息对话框按键样式lv_style_init(&mbox_btn_style);lv_style_set_border_side(&mbox_btn_style, LV_STATE_DEFAULT, LV_BORDER_SIDE_TOP);lv_style_set_radius(&mbox_btn_style, LV_STATE_DEFAULT, 0);//直角lv_style_set_border_width(&mbox_btn_style, LV_STATE_DEFAULT, 1);lv_style_set_border_color(&mbox_btn_style, LV_STATE_DEFAULT, LV_COLOR_MAKE(150, 150, 150));/*在obj作为父对象,创建消息对话框 */mbox = lv_msgbox_create(obj, NULL);lv_msgbox_add_btns(mbox, btns2);//添加按键 lv_msgbox_set_text(mbox, "#007AFF Title#\nHello World!");//添加文本lv_msgbox_set_msg_recolor(mbox, true);//使能消息内容文本重绘色lv_msgbox_set_recolor(mbox, true);//使能按键文本重绘色lv_obj_set_width(mbox,MBOX_WIDTH);//设置宽度,高度会自适应    lv_obj_align(mbox, NULL, LV_ALIGN_CENTER, 0, 0);//相对背景居中对齐lv_obj_set_event_cb(mbox, mbox_event_cb);//设置消息对话框回调函数lv_obj_add_style(mbox, LV_MSGBOX_PART_BG, &mbox_bg_style);//1.lv_obj_add_style(mbox, LV_MSGBOX_PART_BTN_BG, &mbox_btn_bg_style);//2.     lv_obj_add_style(mbox, LV_MSGBOX_PART_BTN, &mbox_btn_style);//3./* 这段设置动画的用法不是很理解 */
#if 1   lv_anim_t a;lv_anim_init(&a);lv_anim_set_var(&a, obj);lv_anim_set_time(&a, 500);//动画时间lv_anim_set_values(&a, LV_OPA_TRANSP, LV_OPA_50);//开始结束透明度lv_anim_set_exec_cb(&a, (lv_anim_exec_xcb_t)opa_anim);lv_anim_start(&a);
#endif//提示信息lv_label_set_text(info, in_msg_info);lv_obj_align(info, NULL, LV_ALIGN_IN_BOTTOM_LEFT, 5, -5);}
}static void opa_anim(void * bg, lv_anim_value_t v)
{lv_obj_set_style_local_bg_opa(bg, LV_OBJ_PART_MAIN, LV_STATE_DEFAULT, v);
}#endif

close按钮的下面2个直角不知道怎么单独去掉

LVGL lv_msgbox消息对话框(22)相关推荐

  1. java实用教程——组件及事件处理——对话框(消息对话框,输入对话框,确认对话框)

    消息对话框:(这个对话框提供一些信息) 无模式:可多线程的执行 有模式:用户必须处理这个一个对话框.必须解决这个问题后才可以继续相处下去 对话框分为无模式和有模式两种.如果一个对话框 是有模式的对话框 ...

  2. C#中的MessageBox消息对话框

    关键字:C# MessageBox 消息对话框 在程序中,我们经常使用消息对话框给用户一定的信息提示,如在操作过程中遇到错误或程序异常,经常会使用这种方式给用于以提示.在C#中,MessageBox消 ...

  3. c#_MessageBox 消息对话框

    C# MessageBox 消息对话框 在程序中,我们经常使用消息对话框给用户一定的信息提示,如在操作过程中遇到错误或程序异常,经常会使用这种方式给用于以提示.在C#中,MessageBox消息对话框 ...

  4. JavaFX弹出窗口和消息对话框代码示例

    弹出窗口 弹窗类 package cn.zxl.AlertWindow;import javafx.geometry.Pos; import javafx.scene.Scene; import ja ...

  5. java消息对话框用什么做_Java如何创建消息对话框?

    本示例演示如何使用JOptionPane类方法创建消息对话框.在下面的代码,你会看到使用的JOptionPane.showMessageDialog(),JOptionPane.showInputDi ...

  6. PyQt5-显示不同类型的消息对话框(提示对话框)

    效果如下: 代码如下: '''消息对话框:QMessageBox1. 关于对话框 2. 错误对话框 3. 警告对话框 4. 提问对话框 5. 消息对话框有2点差异 1. 显示的对话框图标可能不同 2. ...

  7. 消息对话框:alert、confirm、prompt

    1. alert(警告):弹出消息对话框,alert(字符串或变量),只包含一个确定按钮,如果你不点击确定,就不能对网页做任何操作 2. confirm(确认):弹出消息对话框,confirm(要显示 ...

  8. 弹出消息对话框ScriptManager

    //直接调用WebMessageBox方法#region 弹出消息对话框/// <summary>/// 弹出消息对话框/// </summary>/// <param ...

  9. 消息对话框 MessageBoxButtons

    消息对话框MessageBox经常用于向用户显示通知信息.例如,在操作过程中遇到错误或程序异常,经常会使用这种方式给用户以提示,它是特殊类型的对话框. 在C#中,MessageBox消息对话框位于Sy ...

  10. C# 基于MessageBox类的消息对话框讲解

    前言: 我们在学习Windows应用程序开发中,经常会用到消息对话框给用户或者管理员一些的消息提示,它们都是基于对MessageBox类的消息对话框的一种应用,在C#中,MessageBox消息对话框 ...

最新文章

  1. Vue.js 使用 Swiper.js 在 iOS 11 时出现错误
  2. [置顶] 电信系统方案 电信Boss系统
  3. 容器开启数据服务之旅系列(一):Kubernetes如何解自建PostgreSQL运维之痛
  4. mysql简单聚合函数根据条件单表查询
  5. go语言和python的区别_golang和python有什么区别?
  6. sina邮箱的发件服务器拒绝,新浪帮助-常见问题
  7. lua mysql 字符串截取_Lua 截取字符串(截取utf-8格式字符串)
  8. tomcat7简单优化
  9. 思科模拟器(交换机,路由器综合项目)
  10. 想要一款iOS矢量绘图编程软件?推荐来了
  11. JAVA计算机毕业设计劳务外包管理系统(附源码、数据库)
  12. mysql 词频分析_09 使用python完成词频统计
  13. 浏览器-解决火狐浏览器总是提示Adobe Flash更新的问题
  14. iOS10怎么升级?iOS10 beta1升级教程
  15. 鼓励参与计算机考试宣传标语,考试宣传标语34句
  16. Crypto one-time-pad
  17. Linux网络设置(linux相关网络命令大全)
  18. go语言和python对比-对比平台--Python与Go之间的差异
  19. win7自动关机方法
  20. linux c 字符串转int,Linux c/c+编程--std::string str; int转str

热门文章

  1. win10怎么更新显卡驱动_如何更新电脑的显卡驱动(驱动精灵)
  2. MFC---List Control的用法总结
  3. 【一起入门NLP】中科院自然语言处理作业一:RNN,DNN,CNN 进行猫狗分类(pytorch入门)【代码+报告】
  4. 键盘哪个键是锁定计算机,键盘锁是哪个键 锁键盘的是哪个键 - 云骑士一键重装系统...
  5. 大学计算机基础贾宗璞答案,大学计算机应用基础C教学大纲
  6. activity工作流引擎
  7. 新浪微博开发平台基于php的sdk包(包含demo程序),新浪微博API开发简介之用户授权(PHP基础篇)_PHP教程...
  8. Ant-Table查看详情
  9. 24点游戏(python)
  10. 当代大学生结课后的一周