色环部件(lv_colorwheel)

在UI设计中,色环部件一般用作颜色选择器。

色环部件组成部分:

  1. 主体(LV_PART_MAIN)
  2. 旋钮(LV_PART_KNOB)

API函数

  1. 创建色环部件
//knob_recolor:是否开始旋钮重着色(true / false),如果不开启则只会显示一种色系,长按进行色系切换
lv_obj_t  *cw = lv_colorwheel_create(lv_obj_t * parent, bool knob_recolor);
  1. 设置当前选中颜色
lv_colorwheel_set_rgb(cw, lv_color_hex(0xff0000));
  1. 获取当前选中颜色
lv_colorwheel_get_rgb(cw);
  1. 设置色环模式
lv_colorwheel_set_mode(cw, LV_COLORWHEEL_MODE_HUE/SATURATION/VALUE);	    /* 色相、饱和度、明度 */
//是否固定色环模式,如果不固定则只会出现一个色系,并且要按住手柄向色环内移动(停留一段时间)才能切换色系
lv_colorwheel_set_mode_fixed(cw, true);							    /* 固定色环模式 */

按钮矩阵部件(lv_btnmatrix)

按钮矩阵部件可以在不同的行和列中显示多个轻量级(每个只占用8byte 字节,而单纯的按钮部件占用上百字节)按钮。

按钮矩阵部件组成部分:

  1. 主体(LV_PART_MAIN)
  2. 按钮(LV_PART_ITEMS)

API函数

  1. 创建按钮矩阵部件
lv_obj_t  *btnm = lv_btnmatrix_create(parent);
  1. 设置按钮数量、文本
//"\n"只表示换行符,不占用索引数,即"btn2"依旧是1号
//最好定义为全局变量,如果定义成局部变量一定要加static
static const char *map[] = { "btn1", "\n", "btn2", "btn3", "" };	/* 定义按钮数组,最后一个元素必须为空 */
lv_btnmatrix_set_map(btnm, map);					/* 设置按钮 */
  1. 设置按钮相对宽度
lv_btnmatrix_set_btn_width(btnm, id, width);			/* 索引 (id) 从0开始,宽度1~7 ( 默认为1 ) */
  1. 获取按钮索引、文本
lv_btnmatrix_get_selected_btn(btnm);					/* 获取索引 */
//获取文本返回值是一个字符串,并不是一个数值!!!
lv_btnmatrix_get_btn_text(btnm, id);					/* 获取文本 */
  1. 设置、清除按钮属性
lv_btnmatrix_set_btn_ctrl(btnm, id, LV_BTNMATRIX_CTRL_...);		 /* 设置单个按钮属性 */
lv_btnmatrix_clear_btn_ctrl(btnm, id, LV_BTNMATRIX_CTRL_...);		 /* 清除单个按钮属性 */
lv_btnmatrix_set_btn_ctrl_all(btnm, LV_BTNMATRIX_CTRL_...);	 	 /* 设置所有按钮属性 */

enum {
    LV_BTNMATRIX_CTRL_HIDDEN, 						/* 隐藏(虽然看不见但可以使用) */
    LV_BTNMATRIX_CTRL_DISABLED,						/* 失能(无法使用) */
    //状态切换相当于按钮状态切换(背景是否打开)
    LV_BTNMATRIX_CTRL_CHECKABLE, 					/* 允许状态切换 */
    //重新着色需要在*map[]中将数据定义成"#ff0000(16进制颜色) btn1(按钮数组)#"的形式
    LV_BTNMATRIX_CTRL_RECOLOR, 						/* 允许文本重新着色 */
};

  1. 设置单次选中属性
//设置单次选择属性,相当于规定整个按键矩阵一个时刻只有一个按键可以被按下
lv_btnmatrix_set_one_checked(btnm, true);					  /* 注意:需要先设置允许状态切换属性 */

文本区域部件(lv_textarea)

文本区域部件即文本输入框,用户可以在其中输入文本内容。

(文本区域是给用户User使用,标签是给开发者进行使用的)
img

文本区域部件组成部分:

  1. 主体(LV_PART_MAIN)
  2. 滚动条(LV_PART_SCROLLBAR)
  3. 所选文本(LV_PART_SELECTED)
  4. 光标(LV_PART_CURSOR)
  5. 占位符(TEXTAREA_PLACEHOLDER)(其实就是背景提示字)

API函数

  1. 创建文本区域部件
lv_obj_t  *ta = lv_textarea_create(parent);
  1. 添加文本
lv_textarea_add_char(ta, 'A');					/* 添加一个字符到当前光标处 */
lv_textarea_add_text(ta, "BCDEF"); 				/* 添加字符串到当前光标处 */

//键盘部件在下一章进行学习
lv_obj_t *keyboard = lv_keyboard_create(lv_scr_act());	/* 创建键盘部件 */
lv_keyboard_set_textarea(keyboard, ta);			/* 关联键盘和文本区域部件 */
  1. 设置光标位置
lv_textarea_set_cursor_pos(ta, 0);				/* 0:最左侧, LV_TEXTAREA_CURSOR_LAST:最右侧 */
  1. 删除文本
lv_textarea_del_char(ta);							/* 删除光标左侧的一个字符 */
lv_textarea_del_char_forward(ta);					/* 删除光标右侧的一个字符 */
  1. 设置模式
lv_textarea_set_one_line(ta, true);					/* 单行模式 */
lv_textarea_set_password_mode(ta, true);				/* 密码模式(隐藏输入的内容) */
lv_textarea_set_password_show_time(ta, 100);			/* 密码显示时间 */
  1. 限制字符输入
lv_textarea_set_accepted_chars(ta,"0123456789");	 		/* 限制接收的字符 */
lv_textarea_set_max_length(ta,6);			 		/* 限制字符长度 */
  1. 设置占位符
lv_textarea_set_placeholder_text(ta, "password");	 		/* 提示输入密码 */
  1. 获取文本
//一般放在回调函数内部
const char *txt = lv_textarea_get_text(ta);				 /* 获取文本框文本 */ 
  1. 比对文本内容
//可用于密码比对之类
strcmp(const char *s1,const char *s2);					/* 当s1=s2时,返回0 */