威三电子  

               威三电子

使用ZYNQ芯片和LVGL框架实现用户高刷新UI设计系列教程(第十一讲)

2026-07-07 10:41:15

浏览:

这一期讲解lvgl中下拉框的基础使用,下拉列表允许用户从选项列表中选择一个值,下拉列表的选项表默认是关闭的,其中的选项可以是单个值或预定义文本。 当单击下拉列表


    这一期讲解lvgl中下拉框的基础使用,下拉列表允许用户从选项列表中选择一个值,下拉列表的选项表默认是关闭的,其中的选项可以是单个值或预定义文本。 当单击下拉列表后,其将创建一个列表,用户可以从中选择一个选项。 当用户选择了一个值后,该列表将被删除,下次点击会再重新生成。总而言之,下拉框控件是由按键与列表组成的控件。

         使用GUI_Guider软件在工具栏将下拉框拖拽到界面中,以下是下拉框的默认样式:

 

 

 

 

 

 

 

 

 

 

在右侧的属性列表中,下拉框分为三个模块分别是main主模块、selected选择模块、list列表模块、scrollbar滚轮模块。

 

以下图片是main主模块的使用,可以分别配置控件的主颜色、字体颜色以及边框等设置。


 

 

         以下图片是selected选择模块的使用,主要用来设置点击下拉框后,选中条的属性设置,分别有选中的边框粗细以及颜色的设置。

         以下指的是列表的属性设置具体有列表背景颜色、边框大小以及字体设置,***的高度指的是列表展开的长度设置。

 

 

         以下是scrollbar滚轮模块的使用,主要用来设置右侧滚动条的颜色以及粗细。

 

以下是下拉框的相关生成代码:

//Write codes screen_1_ddlist_1

ui->screen_1_ddlist_1 = lv_dropdown_create(ui->screen_1);

//设置列表元素

lv_dropdown_set_options(ui->screen_1_ddlist_1, 'list1\nlist2\nlist3');

//设置列表位置以及大小

    lv_obj_set_pos(ui->screen_1_ddlist_1, 144, 187);

    lv_obj_set_size(ui->screen_1_ddlist_1, 168, 31);

 

//Write style for screen_1_ddlist_1, Part: LV_PART_MAIN, State: LV_STATE_DEFAULT.

//设置文本颜色

lv_obj_set_style_text_color(ui->screen_1_ddlist_1, lv_color_hex(0xffffff), LV_PART_MAIN|LV_STATE_DEFAULT);

//设置文本字体

lv_obj_set_style_text_font(ui->screen_1_ddlist_1, &lv_font_SourceHanSerifSC_Regular_12, LV_PART_MAIN|LV_STATE_DEFAULT);

//设置文本透明度

    lv_obj_set_style_text_opa(ui->screen_1_ddlist_1, 255, LV_PART_MAIN|LV_STATE_DEFAULT);

 //设置边框宽度

 lv_obj_set_style_border_width(ui->screen_1_ddlist_1, 1, LV_PART_MAIN|LV_STATE_DEFAULT);

//设置边框透明度

lv_obj_set_style_border_opa(ui->screen_1_ddlist_1, 255, LV_PART_MAIN|LV_STATE_DEFAULT);

//设置边框颜色

lv_obj_set_style_border_color(ui->screen_1_ddlist_1, lv_color_hex(0xe1e6ee), LV_PART_MAIN|LV_STATE_DEFAULT);

//设置边框类型

lv_obj_set_style_border_side(ui->screen_1_ddlist_1, LV_BORDER_SIDE_FULL, LV_PART_MAIN|LV_STATE_DEFAULT);

//设置边框内边距

    lv_obj_set_style_pad_top(ui->screen_1_ddlist_1, 8, LV_PART_MAIN|LV_STATE_DEFAULT);

    lv_obj_set_style_pad_left(ui->screen_1_ddlist_1, 6, LV_PART_MAIN|LV_STATE_DEFAULT);

lv_obj_set_style_pad_right(ui->screen_1_ddlist_1, 6, LV_PART_MAIN|LV_STATE_DEFAULT);

//设置边框圆角半径

lv_obj_set_style_radius(ui->screen_1_ddlist_1, 4, LV_PART_MAIN|LV_STATE_DEFAULT);

//设置背景透明度

lv_obj_set_style_bg_opa(ui->screen_1_ddlist_1, 255, LV_PART_MAIN|LV_STATE_DEFAULT);

//设置背景颜色

lv_obj_set_style_bg_color(ui->screen_1_ddlist_1, lv_color_hex(0x000000), LV_PART_MAIN|LV_STATE_DEFAULT);

//设置背景渐变方向

lv_obj_set_style_bg_grad_dir(ui->screen_1_ddlist_1, LV_GRAD_DIR_NONE, LV_PART_MAIN|LV_STATE_DEFAULT);

//设置阴影宽度

    lv_obj_set_style_shadow_width(ui->screen_1_ddlist_1, 0, LV_PART_MAIN|LV_STATE_DEFAULT);

 

    //Write style state: LV_STATE_CHECKED for &style_screen_1_ddlist_1_extra_list_selected_checked

    static lv_style_t style_screen_1_ddlist_1_extra_list_selected_checked;

    ui_init_style(&style_screen_1_ddlist_1_extra_list_selected_checked);

   //设置边框宽度

    lv_style_set_border_width(&style_screen_1_ddlist_1_extra_list_selected_checked, 1);

   

    //设置边框透明度

lv_style_set_border_opa(&style_screen_1_ddlist_1_extra_list_selected_checked, 255);

//设置边框颜色

lv_style_set_border_color(&style_screen_1_ddlist_1_extra_list_selected_checked, lv_color_hex(0xe1e6ee));

//设置边框类型

lv_style_set_border_side(&style_screen_1_ddlist_1_extra_list_selected_checked, LV_BORDER_SIDE_FULL);

//设置边框圆角半径

lv_style_set_radius(&style_screen_1_ddlist_1_extra_list_selected_checked, 3);

//设置背景透明度

lv_style_set_bg_opa(&style_screen_1_ddlist_1_extra_list_selected_checked, 255);

//设置背景颜色

lv_style_set_bg_color(&style_screen_1_ddlist_1_extra_list_selected_checked, lv_color_hex(0x00a1b5));

//设置背景渐变方向

lv_style_set_bg_grad_dir(&style_screen_1_ddlist_1_extra_list_selected_checked, LV_GRAD_DIR_NONE);

//将样式应用于下拉列表的选中项

    lv_obj_add_style(lv_dropdown_get_list(ui->screen_1_ddlist_1), &style_screen_1_ddlist_1_extra_list_selected_checked, LV_PART_SELECTED|LV_STATE_CHECKED);

 

    //Write style state: LV_STATE_DEFAULT for &style_screen_1_ddlist_1_extra_list_main_default

    static lv_style_t style_screen_1_ddlist_1_extra_list_main_default;

    ui_init_style(&style_screen_1_ddlist_1_extra_list_main_default);

    //设置***高度

lv_style_set_max_height(&style_screen_1_ddlist_1_extra_list_main_default, 90);

//设置文本颜色

lv_style_set_text_color(&style_screen_1_ddlist_1_extra_list_main_default, lv_color_hex(0x0D3055));

//设置字体类型

lv_style_set_text_font(&style_screen_1_ddlist_1_extra_list_main_default, &lv_font_montserratMedium_12);

//设置文本透明度

lv_style_set_text_opa(&style_screen_1_ddlist_1_extra_list_main_default, 255);

 

 

//设置边框宽度

lv_style_set_border_width(&style_screen_1_ddlist_1_extra_list_main_default, 1);

//设置边框透明度

lv_style_set_border_opa(&style_screen_1_ddlist_1_extra_list_main_default, 255);

//设置边框颜色

lv_style_set_border_color(&style_screen_1_ddlist_1_extra_list_main_default, lv_color_hex(0xe1e6ee));

//设置边框类型

lv_style_set_border_side(&style_screen_1_ddlist_1_extra_list_main_default, LV_BORDER_SIDE_FULL);

//设置圆角半径

lv_style_set_radius(&style_screen_1_ddlist_1_extra_list_main_default, 3);

//设置背景透明度

lv_style_set_bg_opa(&style_screen_1_ddlist_1_extra_list_main_default, 255);

//设置背景颜色

lv_style_set_bg_color(&style_screen_1_ddlist_1_extra_list_main_default, lv_color_hex(0xffffff));

//设置背景渐变色方向

lv_style_set_bg_grad_dir(&style_screen_1_ddlist_1_extra_list_main_default, LV_GRAD_DIR_NONE);

//将样式应用于下拉列表的主部分

    lv_obj_add_style(lv_dropdown_get_list(ui->screen_1_ddlist_1), &style_screen_1_ddlist_1_extra_list_main_default, LV_PART_MAIN|LV_STATE_DEFAULT);

 

    //Write style state: LV_STATE_DEFAULT for &style_screen_1_ddlist_1_extra_list_scrollbar_default

    static lv_style_t style_screen_1_ddlist_1_extra_list_scrollbar_default;

    ui_init_style(&style_screen_1_ddlist_1_extra_list_scrollbar_default);

    //设置圆角半径

lv_style_set_radius(&style_screen_1_ddlist_1_extra_list_scrollbar_default, 3);

//设置背景透明度

lv_style_set_bg_opa(&style_screen_1_ddlist_1_extra_list_scrollbar_default, 255);

//设置背景颜色

    lv_style_set_bg_color(&style_screen_1_ddlist_1_extra_list_scrollbar_default, lv_color_hex(0x00ff00));

   

    //设置渐变色方向    lv_style_set_bg_grad_dir(&style_screen_1_ddlist_1_extra_list_scrollbar_default, LV_GRAD_DIR_NONE);

//将样式应用到滚动条

    lv_obj_add_style(lv_dropdown_get_list(ui->screen_1_ddlist_1), &style_screen_1_ddlist_1_extra_list_scrollbar_default, LV_PART_SCROLLBAR|LV_STATE_DEFAULT);

 

下一期讲解下拉框的回调以及信号。

本文章由威三学院出品

对课程感兴趣可以私信联系

0
使用ZYNQ芯片和LVGL框架实现用户高刷新UI设计系列教程(第十一讲)
这一期讲解lvgl中下拉框的基础使用,下拉列表允许用户从选项列表中选择一个值,下拉列表的选项表默认是关闭的,其中的选项可以是单个值或预定义文本。 当单击下拉列表
长按图片保存/分享

北京威三电子科技有限公司

突破技术壁垒,芯创智联领航未来

 


北京威三电子科技有限公司 版权所有
京ICP备2026012969号
 

热线:

159-2199-9232

 

图片展示

淘宝店铺:

威三科教

地址:

北京市延庆区辰龙国际6号楼406室

微信公众号:

北京威三电子科技有限公司 

热线:159-2199-9232

淘宝店铺:威三科教

地址:北京市延庆区辰龙国际6号楼406


微信公众号

图片展示
北京威三电子科技有限公司 版权所有| 京ICP备2026012969号
微信公众号
客服中心
热线电话
15921999232
上班时间
周一到周五
二维码
扫码关注
客服中心
热线电话
15921999232
上班时间
周一到周五
二维码
扫码关注
添加微信好友,详细了解产品
使用企业微信
“扫一扫”加入群聊
复制成功!
添加微信好友,详细了解产品
我知道了