stm32移植LVGL(3)

11.lv_bar进度条

11.1.进度条的组成
由背景和指示器组成。
11.2.进度条的相关知识
  11.2.1.进度条的值和范围
    lv_bar_set_range(bar,min,max)/*设置进度条部件范围*/
    lv_bar_set_value(bar,new_value,LV_ANIM_ON/oFE)/*设置进度条当前值*/
    lv_bar_set_start_value(bar,new_value,LV_ANIM_ON/oFF)/*设置进度条的值
  例子:
void lv_mainstart()
{
    lv_obj_t* lv_bar1=lv_bar_create(lv_scr_act());/*创建进度条*/
    lv_obj_set_style_bg_color(lv_bar1,lv_color_black(),LV_PART_MAIN | LV_STATE_DEFAULT);
    lv_obj_set_style_bg_color(lv_bar1,lv_palette_main(LV_PALETTE_RED),LV_PART_INDICATOR | LV_STATE_DEFAULT);
    lv_obj_set_size(lv_bar1,100,20);/*设置进度条的大小*/
    lv_obj_align(lv_bar1,LV_ALIGN_CENTER,0,0);/*设置对齐模式*/
    lv_bar_set_range(lv_bar1,0,100);
    lv_bar_set_value(lv_bar1,100,LV_ANIM_OFF);/*设置进度条的值*/
    lv_obj_t* lv_bar2=lv_bar_create(lv_scr_act());/*创建进度条*/
    lv_obj_set_style_bg_color(lv_bar2,lv_color_black(),LV_STATE_DEFAULT);
    lv_obj_set_style_bg_color(lv_bar2,lv_palette_main(LV_PALETTE_BLUE),LV_STATE_DEFAULT);
    lv_obj_set_size(lv_bar2,20,100);/*设置进度条的大小*/
    /*设置对齐模式*/
    lv_obj_align_to(lv_bar2,lv_bar1,LV_ALIGN_OUT_BOTTOM_MID,0,20);
    lv_bar_set_range(lv_bar2,0,100);
    /*填充满的时间*/
    lv_obj_set_style_anim_time(lv_bar2,5000,LV_STATE_DEFAULT);
    lv_bar_set_value(lv_bar2,100,LV_ANIM_ON);/*设置进度条的值*/
}

  

  11.2.2.进度条类lv_bar_set_mode

  常见的三种类型:

    ①.LV_BAR_MODE_NORMAL:普通进度条
    ②.LV_BAR_MODE_SYMMETRICAL:将指标从零值绘制到当前值。需要负的最小范围和正的最大范围。
    ③.LV_BAR_MODE_RANGE:也允许设置起始值,该起始值必须始终小于结束值。
  例子
void lv_mainstart(void)
{
    lv_obj_t* bar2 = lv_bar_create(lv_scr_act()); /* 创建 bar 部件 */ 
    lv_obj_set_style_bg_color(bar2, lv_color_black(), LV_STATE_DEFAULT) ; 
    lv_obj_set_style_bg_color(bar2, lv_palette_main(LV_PALETTE_BLUE), LV_STATE_DEFAULT); 
    lv_bar_set_mode (bar2, LV_BAR_MODE_SYMMETRICAL); /* 设置 bar 为对称模式 */
    lv_bar_set_range(bar2, -100, 100); /* 设置范围 */ 
    lv_obj_set_style_anim_time(bar2, 5000, LV_STATE_DEFAULT) ; /* 填充满的时间*/
    lv_bar_set_value(bar2, 100, LV_ANIM_ON) ; /* 设置 bar 的值,动画显示打开 */
}
  
  11.2.3 LV_BAR_DRAW_PART_INDICATOR:条形图指示器
11.3.进度条的API函数
创建进度条形对象:lv_obj_t * lv_bar_create ( lv_obj_t *parent)
在进度条设置新值:void lv_bar_set_value ( lv_obj_t * obj, int32_t value, lv_anim_enable_t anim )
在进度条设置新的起始值:void lv_bar_set_start_value ( lv_obj_t * obj, int32_t start_value, lv_anim_enable_t anim)
设置进度条最小值和最大值:void lv_bar_set_range (lv_obj_t * obj,int32_t min,int32_t max)
设置进度条类型:void lv_bar_set_mode ( lv_obj_t * obj , lv_bar_mode_t mode)
lv_bar_get_value():获取进度条的值
lv_bar_get_start_value():获取进度条起始值
lv_bar_get_min_value():获取进度条最小值
lv_bar_get_max_value():获取进度条最大值
lv_bar_get_mode():获取进度条类型
 
12.lv_btn按键控件
12.1.按键的组成
由背景组成。
12.2.按键的相关知识
创建对象:lv_obj_t * lv_btn_create(lv_obj_t *parent)
12.3.按键的API函数
与基础对象相似
 
13.lv_btnmatrix矩阵按键
13.1.矩阵按键的组成
Button Matrix对象是一种在行和列中显示多个按钮的轻量级方式。
13.2.矩阵按键的相关知识
  ①文本显示
const char * map[]="btn1","btn2","btn3",""};
void lv_mainstart ()
{
    lv_obj_t * btnml = lv_btnmatrix_create(lv_scr_act());
    lv_btnmatrix_set_map(btnml,map);
}
const char * map[]={"btnl","\n","btn2","btn3",""};
void lv_mainstart()
{
    lv_obj_t * btnml = lv_btnmatrix_create(lv_scr_act_());
    lv_btnmatrix_set_map(btnml,map);
}

  ②控制按键

  设置按键类型:lv_btnmatrix_set_btn_width(btnml,2,2);/*设置id为2的子项设置2倍*/
  常见类型:
    ① LV_BTNMATRIX_CTRL_HIDDEN:将按钮隐藏(隐藏的按钮仍占据布局中的空间,它们不可见或不可单击)。
    ② LV_BTNMATRIX_CTRL_NO_REPEAT:长按按钮时禁用重复。
    ③ LV_BTNMATRIX_CTRL_DISABLED:禁用按钮。
    ④ LV_BTNMATRIX_CTRL_CHECKABLE:启用按钮切换。
    ⑤ LV_BTNMATRIX_CTRL_CHECKED:选中按钮。它将使用LV_STATE_CHECHKED 样式。
    ⑥ LV_BTNMATRIX_CTRL_POPOVER:按下此键时在弹出窗口中显示按钮标签。
    ⑦LV_BTNMATRIX_CTRL_RECOLOR:使用启用按钮文本的重新着色#。例如"#ff0000 red#"。
  例子
const char * map[] = { "btnl", "btn2","btn3", ""}
void lv_mainstart () 
{
    lv_obj_t * btnml = lv_btnmatrix_create(lv_scr_act ()); 
    lv_btnmatrix_set_map(btnml, map); 
    lv_obj_set_size(btnm1, 800, 480 / 2); 
    lv_btnmatrix_set_btn_ctrl (btnml, 0, LV_BTNMATRIX_CTRL_HIDDEN) ; 
    lv_btnmatrix_set_btn_ctrl (btnml, 1, LV_BTNMATRIX_CTRL_DISABLED) ; 
    lv_btnmatrix_set_btn_ctrl (btnm1, 2, LV_BTNMATRIX_CTRL_CHECKABLE) ; 
    lv_btnmatrix_set_btn_width(btnml, 2, 2);
}

  ③按键单次点击

  lv_btnmatrix_set_one_checked(btnm,true)
  例子
const_char* map[] = {"btnl","btn2","btn3",""}
void_lv_mainstart()
{
    lv_obj_t* btnm1=lv_btnmatrix_create(lv_scr_act());
    lv_btnmatrix_set_map(btnm1,map);
    lv_btnmatrix_set_btn_ctrl(btnm1,0,LV_BTNMATRIX_CTRL_CHECKABLE);
    lv_btnmatrix_set_btn_ctrl(btnm1,1,LV_BTNMATRIX_CTRL_CHECKABLE);
    lv_btnmatrix_set_btn_ctrl(btnm1,2,LV_BTNMATRIX_CTRL_CHECKABLE);
    lv_btnmatrix_set_btn_width(btnm1,2,2);
    lv_btnmatrix_set_one_checked(btnm1,true);
}
  
  ④按键着色设置
/*设置id为0,该子项允许着色*/
lv_btnmatrix_set_btn_ctrl(btnm1,0,LV_BTNMATRIX_CTRL_RECOLOR)
const_char * map[]={"#FF0000 btn1#","btn2","btn3",""};
void lv_mainstart()
{
    lv_obj_t * btnm1 = lv_btnmatrix_create(lv_scr_act(),NULL);
    lv_btnmatrix_set_map(btnm1,map);
    lv_btnmatrix_set_btn_ctrl(btnm1,0,LV_BTNMATRIX_CTRL_RECOLOR);
}
  ⑤按键事件
      输入设备事件:LV_EVENT_VALUE_CHANGED:当一个按钮被按下/释放或长按后重复时发送。
      绘画事件:LV_BTNMATRIX_DRAW_PART_BTN:单个按钮。
13.3.矩阵按键的API函数
    创建一个按钮矩阵对象:lv_obj_t * lv_ btnmatrix_create ( lv_obj_t *parent)
    设置子项按键:void lv_btnmatrix_set_map (lv_obj_t * obj, const char * map [] )
  参数与描述
  obj:指向按钮矩阵对象的指针
  map:指针一个字符串数组,最后一个字符串必须是:“”,使用“\n”进行换行
    设置按钮矩阵的按钮控制图:void lv_btnmatrix_set_ctrl_map ( lv_obj_t * obj , const lv_btnmatrix_ctrl_t ctrl_map [])
  参数与描述
  ctrl_map:指向控制字节数组的指针
    设置选中的按钮:void lv_btnmatrix_set_selected_btn (lv_obj_t * obj,uint16_t btn_id)
  参数与描述
  btn_id:要修改的按钮的基于0的索引。(不计算新行)
    设置按钮矩阵的一个按钮的属性:void lv_btnmatrix_set_btn_ctrl (lv_obj_t * obj , uint16_t btn_id , lv_btnmatrix_ctrl_t ctrl )
  参数与描述
  ctrl:OR-ed 属性
    清除按钮矩阵的某个按钮的属性:void lv_btnmatrix_clear_btn_ctrl ( lv_obj_t * obj,uint16_t btn_id , lv_btnmatrix_ctrl_t ctrl )
    设置按钮矩阵的所有按钮的属性:void lv_btnmatrix_set_btn_ctrl_all ( lv_obj_t * obj , lv_btnmatrix_ctrl_t ctrl )
    清除按钮矩阵的所有按钮的属性:void lv_btnmatrix_clear_btn_ctrl_all( lv_obj_t * obj , lv_btnmatrix_ctrl_t ctrl )
    设置单个按钮的相对宽度:void lv_btnmatrix_set_btn_width(lv_obj_t_obj,_uint16_t btn_id , uint8_t_width)
  参数与描述
  width:与同一行中的按钮相比的相对宽度[1..7]
    使按钮矩阵像一个选择器小部件:void lv_btnmatrix_set_one_checked(lv_obj_t * obj,bool_en)
  参数与描述
  en:是否启用“一次检查”模式
    lv_btnmatrix_get_map(): 获取按钮矩阵的当前映射
    lv_btnmatrix_get_selected_btn():获取用户最后“激活”按钮的索引
    lv_btnmatrix_get_btn_text():获取按钮的文本
    lv_btnmatrix_has_btn_ctrl():获取按钮矩阵的按钮是否启用或禁用部件值
    lv_btnmatrix_get_one_checked():是否启用了“一次检查”模式
 
14.lv_checkbox复选框
14.1. 复选框的组成
LVGL的checkbox对象复选框是由3部分组成的,第一部分是最外层的背景,第二部分是内部左侧的小方块,第三部分是内部右侧的文本。
14.2. 复选框的相关知识
  14.2.1设置复选框部件文本 
    lv_checkbox_set_text
    lv_checkbox_set_text_static
  例子
void lv_mainstart()
{
    lv_obj_t* cb1 = lv_checkbox_create(lv_scr_act());
    lv_checkbox_set_text(cb1,"CheckBox1");/*动态设置复选框的文本*/
    lv_obj_align(cb1,LV_ALIGN_CENTER,0,0);
    lv_obj_t* cb2 = lv_checkbox_create(lv_scr_act_());
    lv_checkbox_set_text_static(cb2,"CheckBox2");/*静态设置复选框的文本_*/
    lv_obj_align_to(cb2,cb1,LV_ALIGN_LEFT_MID,0,50);
}

  14.2.2.复选框部件状态设置

  lv_obj_add_state(cb,LV_STATE_CHECKED);/* 选中复选框 */

  lv_obj_clear_state (cb, LV_STATE_CHECKED) ; /*清除复选框 */

  lv_obj_add_state(cb, LV_STATE_CHECKED | LV_STATE_DISABLED) ; /* 禁用复选框*/

  14.2.3.复选框事件

  ①.输入设备事件:LV_EVENT_VALUE_CHANGED:当复选框被切换时发送。

  ②绘画事件:LV_CHECKBOX_DRAW_PART_BOX:复选框的复选框。

14.3. 复选框的API函数
    lv_checkbox_create():创建一个复选框对象
    lv_checkbox_set_text():设置复选框的文本。txt 将被复制,并且在此函数返回后可能会被释放。
    lv_checkbox_set_text_static():设置复选框的文本。txt 在此复选框有效期内不得释放
 checkbox 控件获取函数:lv_checkbox_get_text():获取复选框的文本
 
15.lv_dropdown下拉列表
15.1. 下拉列表的组成
下拉列表部件是由"button"和"list"元素构建(注意:这两者与按钮和列表小部件无关)。
15.2. 下拉列表的相关知识
  15.2.1.添加/设置表项
  第一种:调用lv_dropdown_set_options函数添加表项
  第二种:调用lv_dropdown_add_option函数添加表项
  第三种:调用lv_dropdown_set_static_options函数添加选项
  例子:
void lv_mainstart()
{
    /*创建_一个下拉列表*/
    lv_obj_t* lv_ddlist1 = lv_dropdown_create(lv_scr_act());
    /*添加下拉列表项*/
    lv_dropdown_set_options(lv_ddlist1,"a\nb\nc\nd");
    lv_obj_set_pos(lv_ddlist1,100,100);
    /*默认显示哪一个下拉列表项*/
    lv_dropdown_set_selected(lv_ddlist1,0);
    lv_obj_t* lv_ddlist2 = lv_dropdown_create(lv_scr_act_());
    /*添加下拉列表项*/
    lv_dropdown_add_option(lv_ddlist2,"0",0);
    lv_dropdown_add_option(lv_ddlist2,"1",1);
    lv_dropdown_add_option(lv_ddlist2,"2",2);
    lv_dropdown_add_option(lv_ddlist2,"3",3);
    /*默认显示哪一个下拉列表项*/
    lv_dropdown_set_selected(lv_ddlist2,1);
    lv_obj_set_pos(lv_ddlist2,300,100);
    lv_obj_t*lv_ddlist3 = lv_dropdown_create(lv_scr_act_());
    /*添加下拉列表项*/
    lv_dropdown_set_options_static(lv_ddlist3,"1");
    lv_obj_set_pos(lv_ddlist3,500,100);
}

  15.2.2获取选择的选项

  lv_dropdown_get_selected (dropdown) /*获取选中的选项 */

  lv_dropdown_get_selected_str (dropdown, buf, buf_size)/* 选中的选项字符串保存到 buf */

  15.2.3设置方向 

  lv_dropdown_set_dir(dropdown,LV_DIR_LEFT/RIGHT/UP/BOTTOM)/*设置下拉方向*/
  15.2.4.符号设置
  lv_dropdown_set_symbol(dropdown,LV_SYMBOL…)/*设置符号*/
  15.2.5.设置显示项
  lv_dropdown_set_text(dropdown,"text")/*设置文本*/
  15.2.6手动开闭
  lv_dropdown_open/close(dropdown)/*打开/关闭下拉列表*/
15.3. 下拉列表的API函数
    lv_dropdown_create():创建下拉列表对象
    lv_dropdown_set_text():设置下拉列表按钮的文本
    lv_dropdown_set_options():从字符串中设置下拉列表中的选项
    lv_dropdown_set_options_static():从静态字符串(全局、静态或动态分配)中设置下拉列表中的选项
    lv_dropdown_add_option():从字符串向下拉列表中添加选项
    lv_dropdown_clear_options(): 清除下拉列表中的所有选项。适用于静态和动态选项
    lv_dropdown_set_selected():设置所选选项
    lv_dropdown_set_dir():设置一个下拉列表框的方向
    lv_dropdown_set_symbol():设置下拉列表按钮上显示的箭头或其他符号。通常是向下的插入符号或箭头
    lv_dropdown_set_selected_highlight():设置列表中选择的选项是否应该高亮显示
    lv_dropdown_get_list(): 获取下拉列表,以允许样式化或其他修改
    lv_dropdown_get_text():获取下拉列表按钮的文本
    lv_dropdown_get_options(): 获取下拉列表的选项
    lv_dropdown_get_selected():获取所选选项的索引
    lv_dropdown_get_option_cnt():获取选项的总数
    lv_dropdown_get_selected_str():以字符串形式获取当前选定的选项
    lv_dropdown_get_symbol():获取下拉列表中的符号。通常是向下的插入符号或箭头
    lv_dropdown_get_selected_highlight():获取列表中所选选项是否应该高亮显示
    lv_dropdown_get_dir():获取下拉列表的方向
    lv_dropdown_open(): 打开下拉列表
    lv_dropdown_close():关闭下拉列表
    lv_dropdown_is_open():说明列表是否已打开
 
16.lv_img图像
16.1. 图片的相关知识
  16.1.1图像源选择lv_img_set_src(img,src)
  ①图片源C数组生成与使用
   (1)如何生成图片的C数组
  https://lvgl.io/tools/imageconverter
   (2)图片的C数组的使用步骤:
  第一步:C 数组文件导入工程当中,在工程文件中调用 LV_IMG_DECLARE(xxx)宏定义对图片源进行声明。
  第二步:调用lv_img_create函数创建图片部件。
  第三步:调用lv_img_set_src(img1, &xxx)函数设置图片源。
  ②存储在外部(如SD卡)的文件
   (1)外部图片源文件生成
   (2)外部图片源文件的使用步骤:
  第一步:使能LVGL的文件系统,该部分内容在后面章节会详解。
    第二步:拷贝文件到指定的SD中。
    第三步:调用lv_img_create函数创建图片部件。
    第四步:调用lv_img_set_src(img1,"0:APP/my_img.bin")函数设置图片源。
  ③带有符号的文本
  lv_img_set_src(img1,LV_SYMBOL_XXX) lv_img_set_sre(img,LV_SYMBOL_DUMMY"Some_text")
  16.1.2图像重新着色:img_recolor_opa
  16.1.3图像自动大小:LV_SIZE_CONTENT
  16.1.4图像偏移:
  lv_img_set_offset_x(img,xofs)/*图像往X轴偏移*/
  lv_img_set_offset_y(img,yofs)/*图像往Y轴偏移*/
  16.1.5.图像其它属性的设置
  1.图像的缩放:lv_img_set_zoom
  2.图像旋转:lv_img set_angle
  3.设置图像中心:lv_img_set_pivot(img,pivot_x,pivot_y)
16.2. 图片的API函数
    lv_img_create():创建一个图像对象
    lv_img_set_src():设置图像源显示
    lv_img_set_offset_x():设置图像源的 x 偏移量
    lv_img_set_offset_y():设置图像源的y偏移量
    lv_img_set_pivot():设置图像的旋转中心
    lv_img_set_angle():设置图像的旋转角度
    lv_img_set_zoom():设置图像的缩放倍数
    lv_img_set_antialias():启用/禁用转换的抗锯齿功能(旋转,缩放)
    lv_img_set_size_mode():设置图像的模式
    lv_img_get_src():获取图像的来源
    lv_img_get_offset_x():获取 img 对象的 offset.x 属性
    lv_img_get_offset_y(获取 img 对象的 offset.y 属性
    lv_img_get_angle():获取图像的旋转角度
    lv_img_get_pivot(): 获取图像的旋转中心
    lv_img_get_zoom():获取图像的缩放系数
    lv_img_get_antialias():获取转换(旋转,缩放)是否抗锯齿
    lv_img_get_size_mode():获取图像模式
 
17.lv_label标签
17.1.标签的组成
    label 部件由三个部分组成
  ① LV_PART_MAIN:使用所有典型的背景属性和文本属性。
    ② LV_PART_SCROLLBAR:当文本大于小部件大小时,显示滚动条。
    ③ LV_PART_SELECTED:所选文本的样式(text_color 和 bg_color)。
17.2.标签的相关知识
  17.2.1文本设置
  第一种:lv_label_set_text函数
  第二种:函数:lv_label_set_text_fmt (label,"Value:%d",15)
  第三种:label_set_text_static函数
  17.2. 2 换行符设置
void lv_mainstart (void)
{
    lv_obj_t* lv_label1 = lv_label_create(lv_scr_act()); 
    lv_label_set_text(lv_label1, "Hello \nLVGL \nDemo text"); 
    lv_obj_t* lv_label2 = lv_label_create(lv_scr_act()); 
    lv_obj_align_to (lv_labe12, lv_label1,LV_ALIGN_OUT_BOTTOM_MID,0,0); 
    /*设置标签文本及偏移*/ 
    lv_label_set_text_fmt(lv_label2, "Label value 8d", 20);
}

  17.2.3文本长模式LV_SIZE_CONTENT

  长模式策略可调用lv_label_set_long_mode函数

  (1)LV_LABEL_LONG_WRAP(默认)

    (2)_LV_LABEL_LONG_DOT
    (3)LV_LABEL_LONG_SCROLL
    (4)LV_LABEL_LONG_SCROLL_CIRCULAR
    (5)LV_LABEL_LONG_CLIP
  17.2.4文本着色:lv_labeset_recolor
  17.2.5长文本设置:LV_LABEL_LONG_TXT_HINT(lv_conf.h)
17.3.标签的API函数
    label部件设置函数
    lv_label_create():创建标签对象
    lv_label_set_text():设置标签的新文本
    lv_label_set_text_fmt():设置标签的新格式的文本
    lv_label_set_text_static():设置一个静态文本
    lv_label_set_long_mode():使用更长的文本然后设置对象大小来设置标签
    lv_label_set_recolor():启用重新着色
    lv_label_set_text_sel_start():设置选择开始索引
    lable部件获取函数
    lv_label_set_text_sel_end():设置选择结束索引
    lv_label_get_text():获取标签文本
    lv_label_get_long_mode():获取标签的长模式
    lv_label_get_recolor():获取重新着色属性
    lv_label_get_letter_pos(获取字母的相对x和y坐标
    lv_label_get_letter_on():获取标签相对点上的字母索引
    lv_label_is_char_under_pos():检查是否在一个点下绘制了一个字符
    lv_label_get_text_selection_start():获取选择开始索引
    lv_label_get_text_selection_end():获取选择结束索引
    lv_label_ins_text():在标签上插入文本。标签文本不能是静态的
    lv_label_cut_text():从标签中删除字符。标签文本不能是静态的
 
18.lv_line线控件
18.1.线的相关知识
  1设置连接点hy_line_set_points
  例子
void lv_mainstart_(void)
{
    /*为直线的点创建一个数组*/
    static lv_point_t line_points[]={{5,5},{70,70},{120,10},_{190,60},{240,10}};
    lv_obj_t* line1;
    /*创建1ine部件*/
    line1 = lv_line_create(lv_scr_act());
    /*设置线部件的点数组*/
    lv_line_set_points(line1,line_points,5);
    /*居中*/
    lv_obj_center(line1);
}

  2 自适应大小V_SIZE_CONTENT

  3倒Y操作lv_line_set_y_invert

18.2.线的API函数
    lv_line_create():创建line部件
    lv_line_set_points():设置一个点数组。线对象将这些点连接起来。
    lv_line_set_y_invert():启用(或禁用)y坐标反转
    lv_line_get_y_invert():获取y反转属性
 
19.lv_roller滚轮
19.1.滚轮的组成
    滚轮部件是由LV_PART_MAIN(背景属性和文本)和LY_PART_SELECTED(选择区域文本)两部分构建组成。
19.2.滚轮的相关知识
    19.2.1 添加选项及滚轮模式
  1.添加选项lv_roller_set_options
  2.滚轮模式
  (1) LV_ROLLER_MODE_INFINITE:设置Roller部件滚轮为正常模式圆形。
       (2) LV_ROLLER_MODE_NORMAL:设置Roller部件滚轮为正常模式。
 19.2.2 获取选项文本
  lv_roller_get_selected
  lv_roller_get_selected_str  
 19.2. 3 选项可见数量
  lv_roller_set_visible_row_count
19.3.滚轮的API函数
    lv_roller_create(): 创建 roller 部件
    lv_roller_set_options(): 设置 roller 部件选项
    lv_roller_set_selected(): 设置所选选项
    lv_roller_set_visible_row_count(): 设置可见选项数量
    lv_roller_get_selected(): 获取所选选项 ID
    lv_roller_get_selected_str(): 获取所选选项文本
    lv_roller_get_options(): 获取一个滚轮的选择
    lv_roller_get_option_cnt(): 获取获取选项的总数
 
20.lv_slider滑块
20.1.滑块的组成
滑块部件是由LV_PART_MAIN、LV_PART_INDICATOR、LV_PART_KNOB三部分构建组成。
20.2. 滑块的相关知识
  20.2.1设置滑块部件的数值范围lv_slider_set_range
  lv_slider_set_value
  例子
void lv_mainstart (void) 
{ 
    /*创建slider部件*/ 
    lv_obj_t* slider = lv_slider_create(lv_scr_act()); 
    /*设置slider部件范围*/ 
    lv_slider_set_range(slider,0,255); 
    /*设置slider部件当前值*/ 
    lv_slider_set_value(slider,100,LV_ANIM_ON); 
    /*设置slider部件居中*/ 
    lv_obj_center(slider); 
}

  20.2.2 设置滑块部件的模式

  (1)LV_SLIDER_MODE_SYMMETRICAL:将指示器从零绘制到当前值,该滑块部件需要设置负的最小范围和正的最大范围。

       (2)LV_SLIDER_MODE_RANGE:系统允许调用lv_bar_set_start_value函数设置起始值,该起始值必须小于结束值。
     lv_slider_set_mode (slider, LV_SLIDER_TYPE_...)/*设置slider控件的模式*/

  20.2.3Knob-only模式

  Iv_obj_add_flag(slider,LV_OBJ_FLAG_ADV_HITTEST)/*单击或者拖动滑块来调整滑块*/

20.3.滑块的API函数
    lv_slider_create(): 创建一个 slider 对象
    lv_slider_set_value(): 设置 slider 部件的当前值
    lv_slider_set_left_value(): 为slider部件的左边旋钮设置一个新值
    lv_slider_set_range(): 设置 slider 部件的数值范围
    lv_slider_set_mode(): 设置 slider 部件模式
    lv_slider_get_value(): 获取 slider 部件当前值
    lv_slider_get_left_value(): 获取slider部件的左边旋钮设置一个新值
    lv_slider_get_min_value(): 获取 slider 部件最小值
    lv_slider_get_max_value(): 获取 slider 部件最大值
    lv_slider_is_dragged(): 判断 slider 是否被拖动
    lv_slider_get_mode(): 获取 slider 部件模式
posted @ 2024-06-02 12:21  阿Q熊  阅读(164)  评论(0)    收藏  举报