【LVGL】【阶段总结1】

基础对象(lv_obj)

其中,所有的对象都使用 lv_obj_t 类型的指针定义

对象所拥有的基本属性

  • 位置(Position)
  • 大小(Size)
  • 父类(Parent)
  • 风格(Styles)
  • 时间处理程序(Event handlers)
  • Etc

设置属性,获取属性 lv_obj_set_...lv_obj_get_...

lv_obj_set_size(btn1, 100, 50);	  /*Set a button's size*/
lv_obj_set_pos(btn1, 20,30);      /*Set a button's position*/

设置位置(Position)

默认情况下,x 和 y 坐标是从父级内容区域的左上角开始测量的。

lv_obj_set_pos(obj,100, 100);    //X、Y

lv_obj_set_x(obj, 200);
lv_obj_set_y(obj, 50);

百分比值是根据父级的内容区域大小计算的。

lv_obj_set_x(btn, lv_pct(10)); //x = 10 % of parent content area width

设置大小(Size)

lv_obj_set_size(obj, 100, 100);    //宽、高

lv_obj_set_width(obj, 300);  
lv_obj_set_height(obj, 500); 

百分比值是根据父级的内容区域大小计算的。

lv_obj_set_height(obj, lv_pct(100));

设置内容区域的大小

lv_obj_set_content_width(obj, 50); //The actual width: padding left + 50 + padding right
lv_obj_set_content_height(obj, 30); //The actual width: padding top + 30 + padding bottom

检索边界框和内容区域的大小

lv_coord_t w = lv_obj_get_width(obj);
lv_coord_t h = lv_obj_get_height(obj);
lv_coord_t content_w = lv_obj_get_content_width(obj);
lv_coord_t content_h = lv_obj_get_content_height(obj);

对齐方式(Alignment)

两种对齐方式,第一种是参照父类

lv_obj_align(obj, base, LV_ALIGN_CENTER, 10, 10);
//函数原型
void lv_obj_align(lv_obj_t * obj, lv_align_t align, lv_coord_t x_ofs, lv_coord_t y_ofs)
//另一函数
void lv_obj_align_to(lv_obj_t * obj, const lv_obj_t * base, lv_align_t align, lv_coord_t x_ofs, lv_coord_t y_ofs)
//不需要偏移
lv_obj_set_align(obj, align);
  • obj:要设置的对象
  • base:参照对象
  • align:对齐方式
  • x_ofs:X偏移量
  • y_ofs:Y偏移量

将对象与父级中心对齐很常见,创立了专门函数

lv_obj_center(obj);

样式(Using styles)

位置、大小、对齐属性都是样式属性!!!

属性示例:

static lv_style_t style;
lv_style_init(&style);
lv_style_set_width(&style, 100);

lv_obj_t * btn = lv_btn_create(lv_scr_act());
lv_obj_add_style(btn, &style, LV_PART_MAIN);

LVGL控件

LVGL是以对象为概念的。基础的对象为 lv_obj 控件。其他空间都是 lv_obj 控件的衍生。

核心控件

名称中文名表示简介
Arclv_arc
Bar进度条lv_bar
Button按键lv_btn
Button matrix按键矩阵lv_btnmatrix
Canvas画布lv_canvas
Checkbox复选框lv_checkbox
Drop-down list下拉列表lv_dropdown
Image图片lv_img
Label标签lv_label
Line线lv_line
Roller滚动条lv_roller
Slider滑块lv_slider
Switch开关lv_switch
Table表格lv_table
Test area文本区域lv_textarea

额外控件

名称中文名表示简介
Animation Image动画图像lv_animimg
Calendar日历lv_calendar
Chart图表lv_chart
Color wheel颜色选择器lv_colorwheel
Image button图片按键lv_imgbtn
Keyboard键盘lv_keyboard
LEDLEDlv_led
List列表lv_list
Menu菜单lv_menu
Meter仪表lv_meter
Message box消息框lv_msgbox
Span跨度lv_span
Spinbox微调lv_spinbox
Spinner环形加载lv_spinner
Tabview标签视图lv_tabview
Tile view网格切换lv_tileview
Window窗口lv_win
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值