立即注册 找回密码

微雪课堂

搜索

树莓派littlevGL系列教程:消息弹窗控件(lv_mbox)

2019-12-8 20:12| 发布者: imliubo| 查看: 7688| 评论: 0|原作者: IAMLIUBO

摘要: Hi,大家好,欢迎来到树莓派之littlevGL课堂,我们在上节课中学习了线表控件(lv_lmeter),本节课带大家学习消息弹窗控件,相信大家在使用手机或者电脑的时候肯定都会遇到消息弹窗,不管是警告还是提示,没错本节课程 ...
Hi,大家好,欢迎来到树莓派之littlevGL课堂,我们在上节课中学习了线表控件(lv_lmeter),本节课带大家学习消息弹窗控件,相信大家在使用手机或者电脑的时候肯定都会遇到消息弹窗,不管是警告还是提示,没错本节课程就是带大家学习消息弹窗控件,废话不多说!
一 有图有真相

二 代码分析
用户可下载"圆弧对象(lv_arc)的使用"文章末尾的Demo工程(点击我直接下载),参考圆弧对象(lv_arc)的使用文章,将以下Demo代码复制到Demo工程test.c文件空白处.然后在test.c文件的create_test()函数中增加mbox_test()函数测试。
static lv_obj_t * mbox1;
static void mbox_event_handler(lv_obj_t * obj, lv_event_t event)
{
    if(event == LV_EVENT_VALUE_CHANGED) {
        printf("Button: %s\n", lv_mbox_get_active_btn_text(obj));
        lv_mbox_start_auto_close(mbox1, 10);
    }
}

void mbox_test(void)
{
    static const char * btns[] ={"Apply", "Close", ""};

    mbox1 = lv_mbox_create(lv_scr_act(), NULL);
    lv_mbox_set_text(mbox1, "A message box with two buttons.");
    lv_mbox_add_btns(mbox1, btns);
    lv_obj_set_width(mbox1, 200);
    lv_obj_set_event_cb(mbox1, mbox_event_handler);
    lv_obj_align(mbox1, NULL, LV_ALIGN_CENTER, 0, 0); /*Align to the corner*/
}
弹窗最重要的是什么?是弹出后我们点击某一个按钮可以关闭,因为只起到一个提示或者警告的作用,所以我们同样的创建了一个回调函数用来关闭我们的消息弹窗。
    static const char * btns[] ={"Apply", "Close", ""};

    mbox1 = lv_mbox_create(lv_scr_act(), NULL);
    lv_mbox_set_text(mbox1, "A message box with two buttons.");
    lv_mbox_add_btns(mbox1, btns);
我们创建了一个数组,其实也是我们的消息弹窗里面的按钮名称,这里我们添加了两个,当然你也可以设置三个或者四个,但是最重要的是最后一个必须是"",也就是没有任何字符串,这里用来判断按钮的个数,请务必记得这一点。
然后我们增加设置了消息弹窗里面的提示文本,这个大家可以自行添加,主要起到一些提示作用,然后我们增加上面我们设置的按钮。
lv_obj_set_event_cb(mbox1, mbox_event_handler);
这行函数就是设置我们的回调函数,我们在回调函数里将消息弹窗关闭:
lv_mbox_start_auto_close(mbox1, 10);
其中第二个参数是等待多少毫秒后关闭,大家如果想延时关闭可以将数值设置的大一点。

OK,本节课就到这里,下节课我们学习页面控件(lv_page),我们下节课再见!



262

顶一下

刚表态过的朋友 (262 人)

相关阅读

最新评论

Arduino
基础入门
OpenCV
littleGL

微雪官网|产品资料|手机版|小黑屋|微雪课堂. ( 粤ICP备05067009号 )

GMT+8, 2024-11-25 13:08 , Processed in 0.024693 second(s), 18 queries .

返回顶部