stm32移植LVGL(3)
11.lv_bar进度条

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
常见的三种类型:
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 的值,动画显示打开 */
}



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);
}

②控制按键
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);
}

③按键单次点击
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_BTNMATRIX_DRAW_PART_BTN:单个按钮。

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:复选框的复选框。

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设置方向
第二步:拷贝文件到指定的SD中。
第三步:调用lv_img_create函数创建图片部件。
第四步:调用lv_img_set_src(img1,"0:APP/my_img.bin")函数设置图片源。
② LV_PART_SCROLLBAR:当文本大于小部件大小时,显示滚动条。
③ LV_PART_SELECTED:所选文本的样式(text_color 和 bg_color)。
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(默认)
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
(2) LV_ROLLER_MODE_NORMAL:设置Roller部件滚轮为正常模式。

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)/*单击或者拖动滑块来调整滑块*/

浙公网安备 33010602011771号