lvgl学习复选框部件和进度条部件(基于正点原子)
复选框部件(lv_checkbox)
复选框部件常用于选择某个内容的开启和关闭,可以理解为自带标签的开关。
复选框部件组成部分:
主体(LV_PART_MAIN)
勾选框(LV PART INDICATOR)
知识点1:创建复选框部件
lv_obj_t *checkbox = lv_checkbox_create (parent );
知识点2:文本设置
lv_checkbox_set_text( checkbox, "remember the password" ); /* 设置文本内容 */ lv_obj_set_style_pad_column( checkbox, 20, LV_STATE_DEFAULT ); /* 设置文本和勾选框的间距 */
知识点3:添加、清除复选框状态
lv_obj_add_state(checkbox, LV_STATE_CHECKED | LV_STATE_DISABLED); /* 添加状态:默认选中且不可修改 */
lv_obj_clear_state(checkbox, LV_STATE_CHECKED | LV_STATE_DISABLED); /* 清除复选框的状态 */
知识点4:获取(判断)复选框状态
lv_obj_has_state(checkbox, LV_STATE_CHECKED); /* 返回值:1,选中; 0,非选中 */
进度条部件(lv_bar)
进度条部件常用于显示当前任务的完成进度。
进度条部件组成部分:
主体(LV_PART_MAIN)
指示器(LV_PART_INDICATOR)
知识点1:创建进度条部件
lv_obj_t *bar = lv_bar_create ( parent );
知识点2:设置大小、当前值、范围值
lv_obj_set_size( bar, 400, 20 ); /* 设置大小 */
lv_bar_set_value( bar, 50, LV_ANIM_ON ); /* 设置当前值 */
lv_bar_set_range( bar, -100, 100 ); /* 设置范围值 */
知识点3:设置动画时间
lv_obj_set_style_anim_time( bar, 500, LV_STATE_DEFAULT ); /* 动画设置必须放在当前值设置之前 */
拓展知识点:设置模式、起始值
lv_bar_set_mode( bar, LV_BAR_MODE_RANGE ); /* 设置模式 */
lv_bar_set_start_value( bar, -50, LV_ANIM_OFF ); /* 设置起始值 */
enum {
LV_BAR_MODE_NORMAL, /* 默认模式 */
LV_BAR_MODE_SYMMETRICAL, /* 从零值绘制到当前值(当前值可以小于0) */
LV_BAR_MODE_RANGE /* 允许设置起始值,但起始值必须小于当前值 */
};
注意:在V8.2版本的LVGL中,默认模式也允许设置起始值,但是后续的版本可能会修改。
还有要注意的是:
设置进度条的范围值还有设置动画时间必须要放在当前值设置之前,不然会出错。
当进度条高度大于宽度时,其方向变为垂直。
动画时间指的是旧值刷新到新值的绘图时间,并不是现实中当前值变化所需的时间。