基础对象(lv_obj)

概述

基础对象 实现了屏幕上小部件的基本属性,例如:

  • 座标

  • 父对象

  • 子对象

  • 主要风格

  • 属性,例如点击启用、拖动启用等。

在面向对象的思想中,它是继承 LVGL 中所有其他对象的基类。这尤其有助于减少代码重复。

Base 对象的功能也可以与其他小部件一起使用。例如 lv_obj_set_width(slider,100)

Base 对象可以直接用作简单的小部件。然后就是矩形。

坐标

尺寸

可以使用 lv_obj_set_width(obj,new_width)lv_obj_set_height(obj,new_height) 在单个坐标轴方向(横向、纵向)上修改对象的大小,或者可以使用 lv_obj_set_size(obj,new_width,new_height) 同时修改两个坐标轴方向(横向及纵向)的大小。

样式可以向对象添加边距。 Margin(边距)说 “我想要我周围的空间” 。那么我们可以设置对象的宽度: lv_obj_set_width_margin(obj,new_width) 或高度: lv_obj_set_height_margin(obj,new_height) 。更确切地讲是这样: new_width = left_margin + object_width + right_margin .

要获取包含边距的宽度或高度,请使用 lv_obj_get_width/height_margin(obj)

样式也可以向对象添加填充。填充的意思是 我不要我的孩子们离我的身体太近,所以要保留这个空间 。通过 lv_obj_set_width_fit(obj,new_width)lv_obj_set_height_fit(obj,new_height) 设置需要填充减小的宽度或高度。

可以以更精确的方式: new_width = left_pad + object_width + right_pad 。 要获得通过填充减少的宽度或高度,请使用 lv_obj_get_width/height_fit(obj) 。可以将其视为 对象的有用大小

当其他窗口小部件使用布局或自动调整时,边距和填充变得很重要。

位置

可以使用 lv_obj_set_x(obj,new_x)lv_obj_set_y(obj,new_y) 设置对象相对于父级的x和y坐标,或者同时使用lv_obj_set_pos(obj,new_x,new_y)设置相对于父级的x和y坐标。

对齐

可以使用 lv_obj_align(obj, obj_ref, LV_ALIGN_..., x_ofs, y_ofs) 将对象与另一个对象对齐。

  • obj 是要对齐的对象。

  • obj_ref 是参考对象。obj 将与其对齐。如果 obj_ref = NULL ,则将使用 obj 的父级。

  • 第三个参数是对齐方式的类型。这些是可能的选项:

LVGL中的对齐类型

对齐类型的构建类似于LV_ALIGN_OUT_TOP_MID。 - 最后两个参数允许在对齐对象 将其移动指定数量的像素。

例如,要在图像下方对齐文本:lv_obj_align(text, image, LV_ALIGN_OUT_BOTTOM_MID, 0, 10) 。 或在父级中间对齐文本: lv_obj_align(text, NULL, LV_ALIGN_CENTER, 0, 0)

lv_obj_align_origo 的工作方式与 lv_obj_align 类似,但它使对象的中心对齐。

例如, lv_obj_align_origo(btn, image, LV_ALIGN_OUT_BOTTOM_MID, 0, 0) 将使按钮的中心与图像底部对齐。

如果在 lv_conf.h 中启用了 LV_USE_OBJ_REALIGN ,则路线的参数将保存在对象中。然后,只需调用 lv_obj_realign(obj) 即可重新对齐对象。等效于使用相同的参数再次调用 lv_obj_align

如果对齐是通过 lv_obj_align_origo 进行的,则在重新对齐对象时将使用它。

函数 lv_obj_align_x/ylv_obj_align_origo_x/y 只能在一个轴上对齐。

如果使用 lv_obj_set_auto_realign(obj, true) ,并且对象的大小在 lv_obj_set_width/height/size() 函数中更改,则对象将自动重新对齐。当将尺寸动画应用于对象并且需要保留原始位置时,这非常有用。

(请注意,屏幕的坐标无法更改。尝试在屏幕上使用这些功能将导致不确定的行为。

父子关系

可以使用 lv_obj_set_parent(obj,new_parent) 为对象设置新的父对象。要获取当前的父对象,请使用 lv_obj_get_parent(obj)

要获取对象的子代,请使用 lv_obj_get_child(obj,child_prev) ( 从最后到第一 )或 lv_obj_get_child_back(obj,child_prev) ( 从第一到最后 )。 要获得第一个子代 ,请将 NULL 作为第二个参数传递,并使用返回值遍历子代。如果没有更多的子级,该函数将返回 NULL 。例如:

1    lv_obj_t * child = lv_obj_get_child(parent, NULL);
2    while(child) {
3            /*Do something with "child" */
4            child = lv_obj_get_child(parent, child);
5    }

lv_obj_count_children(obj) 告知对象上的子代数。

lv_obj_count_children_recursive(obj) 也会告知子代数,使用递归计算子代数。

屏幕

创建了 lv_obj_t * screen = lv_obj_create(NULL,NULL) 之类的屏幕后,可以使用 lv_scr_load(screen) 加载它。 lv_scr_act() 函数提供了指向当前屏幕的指针。

如果有更多的显示,那么我们就要知道这些功能,可以在最后创建的或明确选择的显示上运行(使用 lv_disp_set_default )。

要获取对象的屏幕,请使用 lv_obj_get_screen(obj) 函数。

层次

有两个自动生成的层:

  • 顶层 lv_layer_top()

  • 系统层 lv_layer_sys()

它们独立于屏幕(lv_scr_act()),并且将显示在每个屏幕上。顶层位于屏幕上每个对象的上方,而系统层也位于顶层上方。可以将任何弹出窗口自由添加到顶层。但是,系统层仅限于 系统级 的内容(例如,鼠标光标将放在 lv_indev_set_cursor() 中)。

层级关系: lv_scr_act() < lv_layer_top() < lv_layer_sys()

lv_layer_top()lv_layer_sys() 函数提供了指向顶层或系统层的指针。

可以使用 lv_obj_move_foreground(obj)lv_obj_move_background(obj) 将对象置于前景或发送至背景。

阅读 对象层级(Layers) 部分,以了解有关图层的更多信息。

事件处理

要为对象设置事件回调,请使用 lv_obj_set_event_cb(obj, event_cb)

要将事件手动发送到对象,请使用 lv_event_send(obj, LV_EVENT _..., data)

阅读 事件概述 以了解有关事件的更多信息。

部件

小部件可以包含多个部分。例如,按钮仅具有主要部分,而滑块则由背景,指示器和旋钮组成。

零件名称的构造类似于 LV_ + <TYPE> _PART_ <NAME> 。例如 LV_BTN_PART_MAINLV_SLIDER_PART_KNOB 通常在将样式添加到对象时使用零件。使用零件可以将不同的样式分配给对象的不同零件。

要了解有关零件的更多信息,请阅读 样式概述 的相关部分。

状态

对象可以处于以下状态的组合:

  • LV_STATE_DEFAULT 默认或正常状态

  • LV_STATE_CHECKED 选中或点击

  • LV_STATE_FOCUSED 通过键盘或编码器聚焦或通过触摸板/鼠标单击

  • LV_STATE_EDITED 由编码器编辑

  • LV_STATE_HOVERED 鼠标悬停(现在还不支持)

  • LV_STATE_PRESSED 按下

  • LV_STATE_DISABLED 禁用或无效

当用户按下、释放、聚焦等对象时,状态通常由库自动检测更改。当然状态也可以手动检测更改。

要完全覆盖当前状态,调用 lv_obj_set_state(obj, part, LV_STATE...)

要设置或清除某个状态(但不更改其他状态),调用 lv_obj_add/clear_state(obj, part, LV_STATE_...)

可以组合使用状态值。例如: lv_obj_set_state(obj, part, LV_STATE_PRESSED | LV_PRESSED_CHECKED) .

要了解有关状态的更多信息,请阅读 样式概述 的相关部分。

风格

确保首先阅读了解了 样式概述 部分内容。

要将样式添加到对象,请使用 lv_obj_add_style(obj, part, &new_style) 函数。基础对象使用所有类似矩形的样式属性。

要从对象中删除所有样式,请使用 lv_obj_reset_style_list(obj, part)

如果修改对象已使用的样式,为了刷新受影响的对象,可以使用每个对象在对象上使用 lv_obj_refresh_style(obj) 或使用 lv_obj_report_style_mod(&style) 通知具有给定样式的所有对象。如果 lv_obj_report_style_mod 的参数为 NULL ,则将通知所有对象。

属性

调用 lv_obj_set_...(obj, true/false) 可以启用/禁用一些属性:

  • hidden - 隐藏对象。它不会被绘制,输入设备会将其视为不存在。它的子项也将被隐藏。

  • click - 允许通过输入设备单击对象。如果禁用,则单击事件将传递到此事件后面的对象。 (默认情况下无法点击标签)

  • top - 如果启用,则单击此对象或其任何子级时,该对象将进入前台。

  • drag - 启用拖动(通过输入设备移动)

  • drag_dir - 启用仅在特定方向上拖动。可以是LV_DRAG_DIR_HOR / VER / ALL。

  • drag_throw - 通过拖动启用“投掷”,就像对象将具有动量一样

  • drag_parent - 如果启用,则对象的父对象将在拖动过程中移动。看起来就像拖动父级。递归检查,因此也可以传播给祖父母。

  • parent_event - 也将事件传播给父母。递归检查,因此也可以传播给祖父母。

  • opa_scale_enable - 启用不透明度缩放。请参见[#opa-scale](Opa比例尺)部分。

保护

库中有一些自动发生的特定操作。为防止一种或多种此类行为,可以保护对象免受它们侵害。存在以下保护:

  • LV_PROTECT_NONE 没有保护

  • LV_PROTECT_POS 防止自动定位(例如容器中的布局)

  • LV_PROTECT_FOLLOW 防止在自动排序(例如容器布局)中遵循该对象(“换行”)

  • LV_PROTECT_PARENT 防止自动更改父母。 (例如,页面将在背景上创建的子代移动到可滚动页面)

  • LV_PROTECT_PRESS_LOST 防止手指滑过对象时丢失。 (例如,如果按下某个按钮,则可以将其释放)

  • LV_PROTECT_CLICK_FOCUS 如果对象在“组”中并且启用了单击焦点,则阻止其自动聚焦。

  • LV_PROTECT_CHILD_CHG 禁用子对象更换信号。库内部使用

lv_obj_add/clear_protect(obj, LV_PROTECT_…) 设置/清除保护。也可以使用保护类型的“或”值。

一旦将对象添加到具有 lv_group_add_obj(group, obj) 的组中,则可以通过 lv_obj_get_group(obj) 获得该对象的当前组。

lv_obj_is_focused(obj)告知对象当前是否集中在其组上。如果未将对象添加到组中,则将返回false。

阅读 输入设备概述 以了解有关组的更多信息。

扩展点击区域

默认情况下,只能在对象的坐标上单击对象,但是可以使用 lv_obj_set_ext_click_area(obj, left, right, top, bottom) 扩展该区域。左侧(left)/右侧(right)/顶部(top)/底部(bottom) 描述了可点击区域应在每个方向上超出默认范围的程度。

前提是要在 lv_conf.h 使能 LV_USE_EXT_CLICK_AREA 启用此功能。可能的值为:

  • LV_EXT_CLICK_AREA_FULL 将所有 4 个坐标存储为 lv_coord_t

  • LV_EXT_CLICK_AREA_TINY 仅将水平和垂直坐标(使用 左/右和上/下 的较大值)存储为 uint8_t

  • LV_EXT_CLICK_AREA_OFF 禁用此功能

事件

通用事件 是按对象类型发送的。

了解有关 事件 的更多信息。

按键

对象类型不处理任何输入按键。

进一步了解 按键

范例

具有自定义样式的基础对象

http://photos.100ask.net/lvgl/04_widgets/01_obj/02_base_object.png

lvgl中基础对象演示

上述效果的示例代码:

 1    #include "../../../lv_examples.h"
 2
 3    void lv_ex_obj_1(void)
 4    {
 5            lv_obj_t * obj1;
 6            obj1 = lv_obj_create(lv_scr_act(), NULL);
 7            lv_obj_set_size(obj1, 100, 50);
 8            lv_obj_align(obj1, NULL, LV_ALIGN_CENTER, -60, -30);
 9
10            /*Copy the previous object and enable drag*/
11            lv_obj_t * obj2;
12            obj2 = lv_obj_create(lv_scr_act(), obj1);
13            lv_obj_align(obj2, NULL, LV_ALIGN_CENTER, 0, 0);
14            lv_obj_set_drag(obj2, true);
15
16            static lv_style_t style_shadow;
17            lv_style_init(&style_shadow);
18            lv_style_set_shadow_width(&style_shadow, LV_STATE_DEFAULT, 10);
19            lv_style_set_shadow_spread(&style_shadow, LV_STATE_DEFAULT, 5);
20            lv_style_set_shadow_color(&style_shadow, LV_STATE_DEFAULT, LV_COLOR_BLUE);
21
22            /*Copy the previous object (drag is already enabled)*/
23            lv_obj_t * obj3;
24            obj3 = lv_obj_create(lv_scr_act(), obj2);
25            lv_obj_add_style(obj3, LV_OBJ_PART_MAIN, &style_shadow);
26            lv_obj_align(obj3, NULL, LV_ALIGN_CENTER, 60, 30);
27    }

相关API

Typedefs

 1    Typedefs uint8_t lv_design_mode_t
 2    Typedefs uint8_t lv_design_res_t
 3    /* 设计回调用于在屏幕上绘制对象。它接受对象,遮罩区域以及绘制对象的方式。*/
 4    Typedefs lv_design_res_t(* lv_design_cb_t)(struct _lv_obj_t * obj,constlv_area_t * clip_area,lv_design_mode_t mode)
 5
 6    /* 发送到对象的事件类型。*/
 7    Typedefs uint8_t lv_event_t
 8
 9    /* 事件回调。事件用于通知用户对该对象正在执行的某些操作。有关详细信息,请参见 lv_event_t。*/
10    Typedefs void (* lv_event_cb_t)(struct _lv_obj_t * obj,lv_event_t event )
11
12
13    Typedefs uint8_t lv_signal_t
14    Typedefs lv_res_t(* lv_signal_cb_t)(struct _lv_obj_t * obj,lv_signal_t sign,void * param )
15    Typedefs uint8_t lv_protect_t
16    Typedefs uint8_t lv_state_t
17    Typedefs struct _lv_obj_tlv_obj_t
18    Typedefs uint8_t lv_obj_part_t

enums

  1    enum [anonymous]
  2    设计模式
  3
  4    值:
  5    enumerator LV_DESIGN_DRAW_MAIN /* 绘制对象的主要部分 */
  6    enumerator LV_DESIGN_DRAW_POST /* 在对象上绘画 */
  7    enumerator LV_DESIGN_COVER_CHK /* 检查对象是否完全覆盖“ mask_p”区域 */
  8
  9
 10    enum [anonymous]
 11    设计结果
 12    值:
 13    enumerator LV_DESIGN_RES_OK        /* 准备好 */
 14    enumerator LV_DESIGN_RES_COVER     /* LV_DESIGN_COVER_CHK 如果区域完全覆盖,则返回 */
 15    enumerator LV_DESIGN_RES_NOT_COVER /* LV_DESIGN_COVER_CHK 如果未覆盖区域,则返回 */
 16    enumerator LV_DESIGN_RES_MASKED    /* LV_DESIGN_COVER_CHK 如果区域被遮盖,则返回(子类也不会遮盖)*/
 17
 18
 19    enum [anonymous]
 20    值:
 21    enumerator LV_EVENT_PRESSED             /* 该对象已被按下 */
 22    enumerator LV_EVENT_PRESSING            /* 按下对象(按下时连续调用)*/
 23    enumerator LV_EVENT_PRESS_LOST          /* 用户仍在按,但将光标/手指滑离对象 */
 24    enumerator LV_EVENT_SHORT_CLICKED       /* 用户在短时间内按下对象,然后释放它。如果拖动则不调用。*/
 25    enumerator LV_EVENT_LONG_PRESSED        /* 对象已被按下至少LV_INDEV_LONG_PRESS_TIME。如果拖动则不调用。*/
 26    enumerator LV_EVENT_LONG_PRESSED_REPEAT /* LV_INDEV_LONG_PRESS_TIME每LV_INDEV_LONG_PRESS_REP_TIME毫秒调用一次。如果拖动则不调用。*/
 27    enumerator LV_EVENT_CLICKED             /* 如果未拖动则调用释放(无论长按) */
 28    enumerator LV_EVENT_RELEASED            /* 在对象释放后的每种情况下调用 */
 29    enumerator LV_EVENT_DRAG_BEGIN
 30    enumerator LV_EVENT_DRAG_END
 31    enumerator LV_EVENT_DRAG_THROW_BEGIN
 32    enumerator LV_EVENT_GESTURE  /* 对象已被手势 */
 33    enumerator LV_EVENT_KEY
 34    enumerator LV_EVENT_FOCUSED
 35    enumerator LV_EVENT_DEFOCUSED
 36    enumerator LV_EVENT_LEAVE
 37    enumerator LV_EVENT_VALUE_CHANGED /* 对象的值已更改(即,滑块已移动) */
 38    enumerator LV_EVENT_INSERT
 39    enumerator LV_EVENT_REFRESH
 40    enumerator LV_EVENT_APPLY   /* 单击“确定”,“应用”或类似的特定按钮 */
 41    enumerator LV_EVENT_CANCEL  /* 单击了“关闭”,“取消”或类似的特定按钮 */
 42    enumerator LV_EVENT_DELETE  /* 对象被删除 */
 43    enumerator _LV_EVENT_LAST   /* 活动数量 */
 44
 45
 46    enum [anonymous]
 47    信号供对象本身使用或扩展对象的功能。应用程序应使用lv_obj_set_event_cb来通知对象上发生的事件。
 48    值:
 49    enumerator LV_SIGNAL_CLEANUP   /* 对象被删除 */
 50    enumerator LV_SIGNAL_CHILD_CHG /* 子项已删除/添加 */
 51    enumerator LV_SIGNAL_COORD_CHG /* 对象坐标/大小已更改 */
 52    enumerator LV_SIGNAL_PARENT_SIZE_CHG /* 父类的大小已更改 */
 53    enumerator LV_SIGNAL_STYLE_CHG       /* 对象的样式已更改 */
 54    enumerator LV_SIGNAL_BASE_DIR_CHG    /* 基本目录已更改 */
 55    enumerator LV_SIGNAL_REFR_EXT_DRAW_PAD /* 对象的额外填充已更改 */
 56    enumerator LV_SIGNAL_GET_TYPELVGL      /* 需要检索对象的类型 */
 57    enumerator LV_SIGNAL_GET_STYLE         /* 获取对象的样式 */
 58    enumerator LV_SIGNAL_GET_STATE_DSC     /* 获取对象的状态 */
 59    enumerator LV_SIGNAL_HIT_TEST          /* 命中测试 */
 60    enumerator LV_SIGNAL_PRESSED           /* 该对象已被按下 */
 61    enumerator LV_SIGNAL_PRESSING          /* 按下对象(按下时连续调用) */
 62    enumerator LV_SIGNAL_PRESS_LOST        /* 用户仍在按,但将光标/手指滑离对象 */
 63    enumerator LV_SIGNAL_RELEASED          /* 用户在短时间内按下对象,然后释放它。如果拖动则不调用。 */
 64    enumerator LV_SIGNAL_LONG_PRESS        /* 对象已被按下至少LV_INDEV_LONG_PRESS_TIME。如果拖动则不调用。 */
 65    enumerator LV_SIGNAL_LONG_PRESS_REP    /* LV_INDEV_LONG_PRESS_TIME每LV_INDEV_LONG_PRESS_REP_TIME毫秒调用一次。如果拖动则不调用。 */
 66    enumerator LV_SIGNAL_DRAG_BEGIN
 67    enumerator LV_SIGNAL_DRAG_THROW_BEGIN
 68    enumerator LV_SIGNAL_DRAG_END
 69    enumerator LV_SIGNAL_GESTURE  /* 对象已被手势 */
 70    enumerator LV_SIGNAL_LEAVE    /* 通过输入设备单击或选择另一个对象 */
 71    enumerator LV_SIGNAL_FOCUS
 72    enumerator LV_SIGNAL_DEFOCUS
 73    enumerator LV_SIGNAL_CONTROL
 74    enumerator LV_SIGNAL_GET_EDITABLE
 75
 76    enum [anonymous]
 77    值:
 78    enumerator LV_PROTECT_NONE
 79    enumerator LV_PROTECT_CHILD_CHG /* 禁用子类更换信号。被库使用 */
 80    enumerator LV_PROTECT_PARENT    /* 防止自动更改父级(例如,在lv_page中) */
 81    enumerator LV_PROTECT_POS       /* 防止自动定位(例如,在lv_cont布局中) */
 82    enumerator LV_PROTECT_FOLLOW    /* 防止在自动排序中遵循对象(例如,在lv_cont PRETTY布局中) */
 83    enumerator LV_PROTECT_PRESS_LOST  /* 如果indev按的是该对象,但在按时却扫了出去,请勿搜索其他对象。 */
 84    enumerator LV_PROTECT_CLICK_FOCUS /* 单击以防止聚焦对象 */
 85    enumerator LV_PROTECT_EVENT_TO_DISABLED /* 甚至将事件传递给禁用的对象 */
 86
 87
 88    enum [anonymous]
 89    值:
 90    enumerator LV_STATE_DEFAULT  /* 默认 */
 91    enumerator LV_STATE_CHECKED  /* 选中 */
 92    enumerator LV_STATE_FOCUSED  /* 聚焦 */
 93    enumerator LV_STATE_EDITED   /* 编辑 */
 94    enumerator LV_STATE_HOVERED  /* 盘旋 */
 95    enumerator LV_STATE_PRESSED  /* 按下 */
 96    enumerator LV_STATE_DISABLED /* 禁用 */
 97
 98    enum [anonymous]
 99    值:
100    enumerator LV_OBJ_PART_MAIN
101    enumerator _LV_OBJ_PART_VIRTUAL_LAST
102    enumerator _LV_OBJ_PART_REAL_LAST
103    enumerator LV_OBJ_PART_ALL

函数

   1    void lv_init( void )   /* LVGL初始化 */
   2    void lv_deinit( void ) /*取消初始化“ lv”库当前仅在不使用自定义分配器或启用GC时实现。*/
   3    lv_obj_t * lv_obj_create(lv_obj_t *parent,constlv_obj_t * copy)
   4    功能:创建一个基本对象
   5    返回:指向新对象的指针
   6    形参:
   7    parent:指向父对象的指针。如果为NULL,则将创建一个屏幕
   8    copy:  指向基础对象的指针,如果不为NULL,则将从其复制新对象
   9
  10
  11    lv_res_t lv_obj_del(lv_obj_t * obj )
  12    功能:删除“ obj”及其所有子项
  13    返回:LV_RES_INV,因为对象已删除
  14    形参:
  15    obj:指向要删除的对象的指针
  16
  17
  18    void lv_obj_del_anim_ready_cb(lv_anim_t * a )
  19    功能:动画就绪回调中易于使用的函数,可在动画就绪时删除对象
  20    形参:
  21    a:指向动画的指针
  22
  23
  24    void lv_obj_del_async(struct _lv_obj_t * obj )
  25    功能:辅助函数,用于异步删除对象。在无法直接在LV_EVENT_DELETE处理程序(即父级)中删除对象的情况下很有用。
  26    形参:
  27    obj:要删除的对象
  28
  29
  30    void lv_obj_clean(lv_obj_t * obj )
  31    功能:删除对象的所有子对象
  32    形参:
  33    obj:指向对象的指针
  34
  35
  36    void lv_obj_invalidate_area(constlv_obj_t * obj,constlv_area_t *area)
  37    功能:将对象的区域标记为void 。此区域将由“ lv_refr_task”重绘
  38    形参:
  39    obj:指向对象的指针
  40    area:要重绘的区域
  41
  42
  43    void lv_obj_invalidate(constlv_obj_t * obj )
  44    功能:将对象标记为void ,因此将通过“ lv_refr_task”重绘其当前位置
  45    形参:
  46    obj:指向对象的指针
  47
  48
  49    bool lv_obj_area_is_visible(constlv_obj_t * obj,lv_area_t * area )
  50    判断对象的某个区域现在是否可见(甚至部分可见)
  51    返回:true:可见;假:不可见(隐藏,在父母之外,在其他屏幕上等)
  52    形参:
  53    obj:指向对象的指针
  54    area:检查。该区域的可见部分将写回到这里。
  55
  56
  57    bool lv_obj_is_visible(constlv_obj_t * obj )
  58    功能:判断一个对象现在是否可见(甚至部分可见)
  59    返回:true:可见;假:不可见(隐藏,在父母之外,在其他屏幕上等)
  60    形参:
  61    obj:指向对象的指针
  62
  63
  64    void lv_obj_set_parent(lv_obj_t * obj,lv_obj_t *parent)
  65    功能:为对象设置一个新的父对象。其相对位置将相同。
  66    形参:
  67    obj:指向对象的指针。不能是屏幕。
  68    parent:指向新父对象的指针。(不能为NULL)
  69
  70
  71    void lv_obj_move_foreground(lv_obj_t * obj )
  72    功能:移动并反对前景
  73    形参:
  74    obj:指向对象的指针
  75
  76
  77    void lv_obj_move_background(lv_obj_t * obj )
  78    功能:移动并反对背景
  79    形参:
  80    obj:指向对象的指针
  81
  82
  83    void lv_obj_set_pos(lv_obj_t * obj,lv_coord_t x,lv_coord_t y )
  84    功能:设置对象的相对位置(相对于父对象)
  85    形参:
  86    obj:指向对象的指针
  87    x:距父级左侧的新距离
  88    y:距父级顶部的新距离
  89
  90
  91    void lv_obj_set_x(lv_obj_t * obj,lv_coord_t x )
  92    功能:设置对象的x坐标
  93    形参:
  94    obj:指向对象的指针
  95    x:从父级到左侧的新距离
  96
  97
  98    void lv_obj_set_y(lv_obj_t * obj,lv_coord_t y )
  99    功能:设置对象的y坐标
 100    形参:
 101    obj:指向对象的指针
 102    y:距父级顶部的新距离
 103
 104
 105    void lv_obj_set_size(lv_obj_t * obj,lv_coord_t w,lv_coord_t h )
 106    功能:设置对象的大小
 107    形参:
 108    obj:指向对象的指针
 109    w:新宽度
 110    h:新高度
 111
 112
 113    void lv_obj_set_width(lv_obj_t * obj,lv_coord_t w )
 114    功能:设置对象的宽度
 115    形参:
 116    obj:指向对象的指针
 117    w:新宽度
 118
 119
 120    void lv_obj_set_height(lv_obj_t * obj,lv_coord_t h )
 121    功能:设定物件的高度
 122    形参:
 123    obj:指向对象的指针
 124    h:新高度
 125
 126
 127    void lv_obj_set_width_fit(lv_obj_t * obj,lv_coord_t w )
 128    功能:设置通过左右填充减少的宽度。
 129    形参:
 130    obj:指向对象的指针
 131    w:没有填充的宽度
 132
 133
 134    void lv_obj_set_height_fit(lv_obj_t * obj,lv_coord_t h )
 135    功能:设置通过顶部和底部填充减小的高度。
 136    形参:
 137    obj:指向对象的指针
 138    h:不带衬垫的高度
 139
 140
 141    void lv_obj_set_width_margin(lv_obj_t * obj,lv_coord_t w )
 142    功能:通过考虑左边距和右边距来设置对象的宽度。物体的宽度为obj_w = w - margin_left - margin_right
 143    形参:
 144    obj:指向对象的指针
 145    w:包括边距在内的新高度
 146
 147
 148    void lv_obj_set_height_margin(lv_obj_t * obj,lv_coord_t h )
 149    功能:通过考虑顶部和底部边距来设置对象的高度。物体高度将为obj_h = h - margin_top - margin_bottom
 150    形参:
 151    obj:指向对象的指针
 152    h:包括边距在内的新高度
 153
 154
 155    void lv_obj_align(lv_obj_t * obj,constlv_obj_t * base,lv_align_t align,lv_coord_t x_ofs,lv_coord_t y_ofs )
 156    功能:将一个对象与另一个对象对齐。
 157    形参:
 158    obj:指向要对齐的对象的指针
 159    base:指向对象的指针(如果为NULL,则使用父对象)。'obj'将与其对齐。
 160    align:对齐类型(请参见“ lv_align_t”enum )
 161    x_ofs:对齐后的x坐标偏移
 162    y_ofs:对齐后的y坐标偏移
 163
 164
 165    void lv_obj_align_x(lv_obj_t * obj,constlv_obj_t * base,lv_align_t align,lv_coord_t x_ofs )
 166    功能:将一个对象与另一个对象水平对齐。
 167    形参:
 168    obj:指向要对齐的对象的指针
 169    base:指向对象的指针(如果为NULL,则使用父对象)。'obj'将与其对齐。
 170    align:对齐类型(请参见“ lv_align_t”enum )
 171    x_ofs:对齐后的x坐标偏移
 172
 173
 174    void lv_obj_align_y(lv_obj_t * obj,constlv_obj_t * base,lv_align_t align,lv_coord_t y_ofs )
 175    功能:将一个对象与另一个对象垂直对齐。
 176    形参:
 177    obj:指向要对齐的对象的指针
 178    base:指向对象的指针(如果为NULL,则使用父对象)。'obj'将与其对齐。
 179    align:对齐类型(请参见“ lv_align_t”enum )
 180    y_ofs:对齐后的y坐标偏移
 181
 182
 183    void lv_obj_align_mid(lv_obj_t * obj,constlv_obj_t * base,lv_align_t align,lv_coord_t x_ofs,lv_coord_t y_ofs )
 184    功能:将一个对象与另一个对象对齐。
 185    形参:
 186    obj:指向要对齐的对象的指针
 187    base:指向对象的指针(如果为NULL,则使用父对象)。'obj'将与其对齐。
 188    align:对齐类型(请参见“ lv_align_t”enum )
 189    x_ofs:对齐后的x坐标偏移
 190    y_ofs:对齐后的y坐标偏移
 191
 192
 193    void lv_obj_align_mid_x(lv_obj_t * obj,constlv_obj_t * base,lv_align_t align,lv_coord_t x_ofs )
 194    功能:将对象的中点与另一个对象水平对齐。
 195    形参:
 196    obj:指向要对齐的对象的指针
 197    base:指向对象的指针(如果为NULL,则使用父对象)。'obj'将与其对齐。
 198    align:对齐类型(请参见“ lv_align_t”enum )
 199    x_ofs:对齐后的x坐标偏移
 200
 201
 202    void lv_obj_align_mid_y(lv_obj_t * obj,constlv_obj_t * base,lv_align_t align,lv_coord_t y_ofs )
 203    功能:将对象的中点与另一个对象垂直对齐。
 204    形参:
 205    obj:指向要对齐的对象的指针
 206    base:指向对象的指针(如果为NULL,则使用父对象)。'obj'将与其对齐。
 207    align:对齐类型(请参见“ lv_align_t”enum )
 208    y_ofs:对齐后的y坐标偏移
 209
 210
 211    void lv_obj_realign(lv_obj_t * obj )
 212    功能:根据最后一个lv_obj_align参数重新对齐对象。
 213    形参:
 214    obj:指向对象的指针
 215
 216
 217    void lv_obj_set_auto_realign(lv_obj_t * obj,bool en )
 218    功能:当对象的大小根据最后一个lv_obj_align参数更改时,启用对象的自动重新对齐。
 219    形参:
 220    obj:指向对象的指针
 221    en:true:启用自动重新对齐;false:禁用自动重新对齐
 222
 223
 224    void lv_obj_set_ext_click_area(lv_obj_t * OBJ,lv_coord_t left,lv_coord_t right,lv_coord_t top,lv_coord_t bottom)
 225    功能:设置扩展的可点击区域的大小
 226    形参:
 227    obj:指向对象的指针
 228    left:可扩展点击位于左侧[px]
 229    right:可扩展点击位于右侧[px]
 230    top:扩展的可点击位于顶部[px]
 231    bottom:可扩展点击位于底部[px]
 232
 233
 234    void lv_obj_add_style(lv_obj_t * obj,uint8_t part,lv_style_t * style )
 235    功能:将新样式添加到对象的样式列表。
 236    形参:
 237    obj:指向对象的指针
 238    part:应设置样式属性的对象部分。例如LV_OBJ_PART_MAIN,LV_BTN_PART_MAIN,LV_SLIDER_PART_KNOB
 239    style:指向要添加样式的指针(仅会保存其指针)
 240
 241
 242    void lv_obj_remove_style(lv_obj_t * obj,uint8_t part,lv_style_t * style )
 243    功能:从对象的样式列表中删除样式。
 244    形参:
 245    obj:指向对象的指针
 246    part:应设置样式属性的对象部分。例如LV_OBJ_PART_MAIN,LV_BTN_PART_MAIN,LV_SLIDER_PART_KNOB
 247    style:指向要删除的样式的指针
 248
 249
 250    void lv_obj_clean_style_list(lv_obj_t * obj,uint8_t part )
 251    功能:将样式重置为默认(空)状态。释放所有已使用的内存,并取消待处理的相关转换。通常用于`LV_SIGN_CLEAN_UP。
 252    形参:
 253    obj:指向对象的指针
 254    part:应重置样式列表的对象部分。例如LV_OBJ_PART_MAIN,LV_BTN_PART_MAIN,LV_SLIDER_PART_KNOB
 255
 256
 257    void lv_obj_reset_style_list(lv_obj_t * obj,uint8_t part )
 258    功能:将样式重置为默认(空)状态。释放所有已使用的内存,并取消待处理的相关转换。还通知对象有关样式更改的信息。
 259    形参:
 260    obj:指向对象的指针
 261    part:应重置样式列表的对象部分。例如LV_OBJ_PART_MAIN,LV_BTN_PART_MAIN,LV_SLIDER_PART_KNOB
 262
 263
 264    void lv_obj_refresh_style(lv_obj_t * obj,uint8_t part,lv_style_property_t prop )
 265    功能:通知对象(及其子对象)其样式已修改
 266    形参:
 267    obj:指向对象的指针
 268    prop:LV_STYLE_PROP_ALL或LV_STYLE_...财产。它用于优化需要刷新的内容。
 269
 270
 271    void lv_obj_report_style_mod( lv_style_t *style)
 272    功能:修改样式时通知所有对象
 273    形参:
 274    style:指向样式的指针。仅具有这种样式的对象将被通知(NULL通知所有对象)
 275
 276    void _lv_obj_set_style_local_color(lv_obj_t * OBJ,uint8_t part,lv_style_property_t prop,lv_color_t the)
 277    功能:在给定状态下设置对象的一部分的局部样式属性。
 278    注意:
 279    1.不应直接使用。请改用特定的属性get函数。例如:lv_obj_style_get_border_opa()
 280    2.由于性能原因,不会检查属性是否确实具有颜色类型
 281    形参:
 282    obj:指向对象的指针
 283    part:应设置样式属性的对象部分。例如LV_OBJ_PART_MAIN,LV_BTN_PART_MAIN,LV_SLIDER_PART_KNOB
 284    prop:样式属性与状态或。例如LV_STYLE_BORDER_COLOR | (LV_STATE_PRESSED << LV_STYLE_STATE_POS)
 285    the:要设置的值
 286
 287
 288    void _lv_obj_set_style_local_int(lv_obj_t * OBJ,uint8_t part,lv_style_property_t prop,lv_style_int_t the)
 289    功能:在给定状态下设置对象的一部分的局部样式属性。
 290    注意:
 291    1.不应直接使用。请改用特定的属性get函数。例如:lv_obj_style_get_border_opa()
 292    2.出于性能原因,不检查该属性是否确实具有整数类型
 293    形参:
 294    obj:指向对象的指针
 295    part:应设置样式属性的对象部分。例如LV_OBJ_PART_MAIN,LV_BTN_PART_MAIN,LV_SLIDER_PART_KNOB
 296    prop:样式属性与状态或。例如LV_STYLE_BORDER_WIDTH | (LV_STATE_PRESSED << LV_STYLE_STATE_POS)
 297    the:要设置的值
 298
 299
 300    void _lv_obj_set_style_local_opa(lv_obj_t * obj,uint8_t part,lv_style_property_t prop,lv_opa_t opa )
 301    功能:在给定状态下设置对象的一部分的局部样式属性。
 302    注意:
 303    1.不应直接使用。请改用特定的属性get函数。例如:lv_obj_style_get_border_opa()
 304    2.由于性能原因,不检查属性是否确实具有不透明度类型
 305    形参:
 306    obj:指向对象的指针
 307    part:应设置样式属性的对象部分。例如LV_OBJ_PART_MAIN,LV_BTN_PART_MAIN,LV_SLIDER_PART_KNOB
 308    prop:样式属性与状态或。例如LV_STYLE_BORDER_OPA | (LV_STATE_PRESSED << LV_STYLE_STATE_POS)
 309    the:要设置的值
 310
 311
 312    void _lv_obj_set_style_local_ptr(lv_obj_t * obj,uint8_t type,lv_style_property_t prop,constvoid *the)
 313    功能:在给定状态下设置对象的一部分的局部样式属性。
 314    注意:
 315    1.不应直接使用。请改用特定的属性get函数。例如:lv_obj_style_get_border_opa()
 316    2.出于性能原因,不检查该属性是否确实具有指针类型
 317    形参:
 318    obj:指向对象的指针
 319    part:应设置样式属性的对象部分。例如LV_OBJ_PART_MAIN,LV_BTN_PART_MAIN,LV_SLIDER_PART_KNOB
 320    prop:样式属性与状态或。例如LV_STYLE_TEXT_FONT | (LV_STATE_PRESSED << LV_STYLE_STATE_POS)
 321    the:要设置的值
 322
 323
 324    bool lv_obj_remove_style_local_prop(lv_obj_t * obj,uint8_t part,lv_style_property_t prop )
 325    功能:从具有给定状态的对象的一部分中删除局部样式属性。
 326    注意:
 327    不应直接使用。请改用特定的属性删除功能。例如:lv_obj_style_remove_border_opa()
 328    返回:true:已找到并删除了该属性;false:找不到该属性
 329    形参:
 330    obj:指向对象的指针
 331    part:对象的应删除样式属性的部分。例如LV_OBJ_PART_MAIN,LV_BTN_PART_MAIN,LV_SLIDER_PART_KNOB
 332    prop:样式属性与状态或。例如LV_STYLE_TEXT_FONT | (LV_STATE_PRESSED << LV_STYLE_STATE_POS)
 333
 334
 335    void _lv_obj_disable_style_caching(lv_obj_t * obj,bool dis )
 336    功能:启用/禁用对象的样式缓存
 337    形参:
 338    obj:指向对象的指针
 339    dis:true:禁用;false:启用(重新启用)
 340
 341
 342    void lv_obj_set_hidden(lv_obj_t * obj,bool en )
 343    功能:隐藏对象。它不会显示和单击。
 344    形参:
 345    obj:指向对象的指针
 346    en:true:隐藏对象
 347
 348    void lv_obj_set_adv_hittest(lv_obj_t * obj,bool en )
 349    功能:设置是否在对象上启用高级命中测试
 350    形参:
 351    obj:指向对象的指针
 352    en:true:启用高级命中测试
 353
 354
 355    void lv_obj_set_click(lv_obj_t * obj,bool en )
 356    功能:启用或禁用对象单击
 357    形参:
 358    obj:指向对象的指针
 359    en:true:使对象可点击
 360
 361
 362    void lv_obj_set_top(lv_obj_t * obj,bool en )
 363    功能:如果单击该对象或其任何子对象,则启用该对象
 364    形参:
 365    obj:指向对象的指针
 366    en:true:启用自动顶部功能
 367
 368
 369    void lv_obj_set_drag(lv_obj_t * obj,bool en )
 370    功能:启用对象拖动
 371    形参:
 372    obj:指向对象的指针
 373    en:true:使对象可拖动
 374
 375
 376    void lv_obj_set_drag_dir(lv_obj_t * obj,lv_drag_dir_t drag_dir )
 377    功能:设置可以拖动对象的方向
 378    形参:
 379    obj:指向对象的指针
 380    drag_dir:允许的拖动方向的按位或
 381
 382
 383    void lv_obj_set_drag_throw(lv_obj_t * obj,bool en )
 384    功能:拖动后启用对象投掷
 385    形参:
 386    obj:指向对象的指针
 387    en:true:启用拖动
 388
 389
 390    void lv_obj_set_drag_parent(lv_obj_t * obj,bool en )
 391    功能:启用将父项用于拖动相关的操作。如果尝试拖动对象,则将父对象移动
 392    形参:
 393    obj:指向对象的指针
 394    en:true:为对象启用“拖动父对象”
 395
 396
 397    void lv_obj_set_focus_parent(lv_obj_t * obj,bool en )
 398    功能:启用以将父级用于焦点状态。当对象聚焦时,父级将获得状态(仅可见)
 399    形参:
 400    obj:指向对象的指针
 401    en:true:为对象启用“焦点父对象”
 402
 403
 404    void lv_obj_set_gesture_parent(lv_obj_t * obj,bool en )
 405    功能:启用将父项用于手势相关操作。如果尝试手势对象,则将父对象移动
 406    形参:
 407    obj:指向对象的指针
 408    en:true:为对象启用“手势父级”
 409
 410
 411    void lv_obj_set_parent_event(lv_obj_t * obj,bool en )
 412    功能:也将事件传播给父级
 413    形参:
 414    obj:指向对象的指针
 415    en:true:启用事件传播
 416
 417
 418    void lv_obj_set_base_dir(lv_obj_t * obj,lv_bidi_dir_t dir )
 419    功能:设置对象的基本方向
 420    注意:
 421    仅在启用LV_USE_BIDI的情况下才有效。
 422    形参:
 423    obj:指向对象的指针
 424    dir:新的基本方向。 LV_BIDI_DIR_LTR/RTL/AUTO/INHERIT
 425
 426
 427    void lv_obj_add_protect(lv_obj_t * obj,uint8_t prot )
 428    功能:在保护字段中设置一个或多个位
 429    形参:
 430    obj:指向对象的指针
 431    prot:来自“或”的值 lv_protect_t
 432
 433
 434    void lv_obj_clear_protect(lv_obj_t * obj,uint8_t prot )
 435    功能:清除保护字段中的一个或多个位
 436    形参:
 437    obj:指向对象的指针
 438    prot:来自“或”的值 lv_protect_t
 439
 440
 441    void lv_obj_set_state(lv_obj_t * obj,lv_state_t state)
 442    功能:设置对象的状态(完全覆盖)。如果在样式中指定,则过渡动画将从前一状态开始到当前状态
 443    形参:
 444    obj:指向对象的指针
 445    state:新状态
 446
 447
 448    void lv_obj_add_state(lv_obj_t * obj,lv_state_t state)
 449    功能:将一个或多个给定状态添加到对象。其他状态位将保持不变。如果在样式中指定,则过渡动画将从前一状态开始到当前状态
 450    形参:
 451    obj:指向对象的指针
 452    state:要添加的状态位。例如LV_STATE_PRESSED | LV_STATE_FOCUSED
 453
 454
 455    void lv_obj_clear_state(lv_obj_t * obj,lv_state_t state)
 456    功能:删除对象的给定状态。其他状态位将保持不变。如果在样式中指定,则过渡动画将从前一状态开始到当前状态
 457    形参:
 458    obj:指向对象的指针
 459    state:要删除的状态位。例如LV_STATE_PRESSED | LV_STATE_FOCUSED
 460
 461
 462    void lv_obj_finish_transitions(lv_obj_t * obj,uint8_t part )
 463    功能:在对象的一部分上完成所有挂起的过渡
 464    形参:
 465    obj:指向对象的指针
 466    part:对象的一部分,例如LV_BRN_PART_MAIN或LV_OBJ_PART_ALL所有部分
 467
 468
 469    void lv_obj_set_event_cb(lv_obj_t * obj,lv_event_cb_t event_cb )
 470    功能:为对象设置事件处理函数。用户用于对对象发生的事件做出反应。
 471    形参:
 472    obj:指向对象的指针
 473    event_cb:新事件功能
 474
 475
 476    lv_res_t lv_event_send(lv_obj_t * obj,lv_event_t event,constvoid * data)
 477    功能:向对象发送事件
 478    返回:LV_RES_OK:obj在事件中没有被删除;LV_RES_INV:obj在事件中被删除
 479    形参:
 480    obj:指向对象的指针
 481    event:来自的事件类型lv_event_t。
 482    data:取决于对象类型和事件的任意数据。(通常NULL)
 483
 484
 485    lv_res_t lv_event_send_refresh(lv_obj_t * obj )
 486    功能:将LV_EVENT_REFRESH事件发送到对象
 487    返回:LV_RES_OK:成功,LV_RES_INV:对象由于该事件而变得void (例如,删除)。
 488    形参:
 489    obj:指向一个对象。(不能为NULL)
 490
 491
 492    void lv_event_send_refresh_recursive(lv_obj_t * obj )
 493    功能:将LV_EVENT_REFRESH事件发送给对象及其所有子对象
 494    形参:
 495    obj:指向一个对象的指针,或者为NULL以刷新所有显示的所有对象
 496
 497
 498    lv_res_t lv_event_send_func(lv_event_cb_t event_xcb,lv_obj_t * obj,lv_event_t event,constvoid *data)
 499    功能:使用对象,事件和数据调用事件函数。
 500    返回:LV_RES_OK:obj在事件中没有被删除;LV_RES_INV:obj在事件中被删除
 501    形参:
 502    event_xcb:事件回调函数。如果NULL LV_RES_OK返回,则不执行任何操作。(参数名称中的“ x”表示它不是完全通用的函数,因为它不遵循约定)func_name(object, callback, ...)
 503    obj:指向与事件关联的对象的指针(可以NULL简单地调用event_cb)
 504    event: 一个事件
 505    data:指向自定义数据的指针
 506
 507
 508    constvoid * lv_event_get_data(void )
 509    功能:获取data当前事件的参数
 510    返回
 511    该data参数
 512
 513    void lv_obj_set_signal_cb(lv_obj_t * obj,lv_signal_cb_t signal_cb )
 514    功能:设置对象的信号功能。由库内部使用。始终在新信号中调用前一个信号功能。
 515    形参:
 516    obj:指向对象的指针
 517    signal_cb:新信号功能
 518
 519
 520    lv_res_t lv_signal_send(lv_obj_t * obj,lv_signal_t signal,void * param )
 521    功能:向对象发送事件
 522    返回:LV_RES_OK或LV_RES_INV
 523    形参:
 524    obj:指向对象的指针
 525    event:来自的事件类型lv_event_t。
 526
 527
 528    void lv_obj_set_design_cb(lv_obj_t * obj,lv_design_cb_t design_cb )
 529    功能:为对象设置新的设计功能
 530    形参:
 531    obj:指向对象的指针
 532    design_cb:新的设计功能
 533
 534
 535    void * lv_obj_allocate_ext_attr(lv_obj_t * obj,uint16_t ext_size )
 536    功能:分配一个新的分机。对象的数据
 537    返回:指向分配的ext的指针
 538    形参:
 539    obj:指向对象的指针
 540    ext_size:新分机的大小。数据
 541
 542
 543    void lv_obj_refresh_ext_draw_pad(lv_obj_t * obj )
 544    功能:向对象发送“ LV_SIGNAL_REFR_EXT_SIZE”信号以刷新扩展的绘制区域。lv_obj_invalidate(obj)此功能后,需要手动使对象void 。
 545    形参:
 546    obj:指向对象的指针
 547
 548
 549    lv_obj_t * lv_obj_get_screen(constlv_obj_t * obj )
 550    功能:返回对象的屏幕
 551    返回:指向屏幕的指针
 552    形参:
 553    obj:指向对象的指针
 554
 555
 556    lv_disp_t * lv_obj_get_disp(constlv_obj_t * obj )
 557    功能:获取对象的显示
 558    返回:指针对象的显示
 559
 560    lv_obj_t * lv_obj_get_parent(constlv_obj_t * obj )
 561    功能:返回对象的父对象
 562    返回:指向“ obj”的父对象的指针
 563    形参:
 564    obj:指向对象的指针
 565
 566
 567    lv_obj_t * lv_obj_get_child(constlv_obj_t * obj,constlv_obj_t * child )
 568    功能:遍历对象的子项(从“最新的,最后创建的”开始)
 569    返回:'act_child'之后的子级;如果没有更多子级,则为NULL
 570    形参:
 571    obj:指向对象的指针
 572    child:第一次调用时为NULL,以获取下一个子类,以后再返回上一个返回值
 573
 574
 575    lv_obj_t * lv_obj_get_child_back(constlv_obj_t * obj,constlv_obj_t * child )
 576    功能:遍历对象的子项(从“最早的”开始,首先创建)
 577    返回:'act_child'之后的子级;如果没有更多子级,则为NULL
 578    形参:
 579    obj:指向对象的指针
 580    child:第一次调用时为NULL,以获取下一个子类,以后再返回上一个返回值
 581
 582
 583    uint16_t lv_obj_count_children(constlv_obj_t * obj )
 584    功能:计算对象的子代(仅直接在“ obj”上的子代)
 585    返回:'obj'的子代号
 586    形参:
 587    obj:指向对象的指针
 588
 589
 590    uint16_t lv_obj_count_children_recursive(constlv_obj_t * obj )
 591    功能:递归计算对象的子代
 592    返回:'obj'的子代号
 593    形参:
 594    obj:指向对象的指针
 595
 596
 597    void lv_obj_get_coords(constlv_obj_t * obj,lv_area_t * cords_p )
 598    功能:将对象的坐标复制到区域
 599    形参:
 600    obj:指向对象的指针
 601    cords_p:指向存储坐标的区域的指针
 602
 603
 604    void lv_obj_get_inner_coords(constlv_obj_t * obj,lv_area_t * coords_p )
 605    功能:减少由lv_obj_get_coords()对象的图形可用区域重试的区域。(没有边框的大小或其他额外的图形元素)
 606    形参:
 607    coords_p:将结果区域存储在此处
 608
 609
 610    lv_coord_t lv_obj_get_x(constlv_obj_t * obj )
 611    功能:获取对象的x坐标
 612    返回:“ obj”到其父对象左侧的距离
 613    形参:
 614    obj:指向对象的指针
 615
 616
 617    lv_coord_t lv_obj_get_y(constlv_obj_t * obj )
 618    功能:获取对象的y坐标
 619    返回:“ obj”到其父对象顶部的距离
 620    形参:
 621    obj:指向对象的指针
 622
 623
 624    lv_coord_t lv_obj_get_width(constlv_obj_t * obj )
 625    功能:获取对象的宽度
 626    返回:宽度
 627    形参:
 628    obj:指向对象的指针
 629
 630
 631    lv_coord_t lv_obj_get_height(constlv_obj_t * obj )
 632    功能:获取对象的高度
 633    返回:高度
 634    形参:
 635    obj:指向对象的指针
 636
 637
 638    lv_coord_t lv_obj_get_width_fit(constlv_obj_t * obj )
 639    功能:通过左右填充减少宽度。
 640    返回:仍然适合容器的宽度
 641    形参:
 642    obj:指向对象的指针
 643
 644
 645    lv_coord_t lv_obj_get_height_fit(constlv_obj_t * obj )
 646    功能:通过顶部底部填充减少高度。
 647    返回:仍然适合容器的高度
 648    形参:
 649    obj:指向对象的指针
 650
 651
 652    lv_coord_t lv_obj_get_height_margin(lv_obj_t * obj )
 653    功能:通过考虑顶部和底部边距来获取对象的高度。返回的高度将是obj_h + margin_top + margin_bottom
 654    返回:包括您的边距在内的高度
 655    形参:
 656    obj:指向对象的指针
 657
 658
 659    lv_coord_t lv_obj_get_width_margin(lv_obj_t * obj )
 660    功能:通过考虑左边距和右边距来获得对象的宽度。返回的宽度将是obj_w + margin_left + margin_right
 661    返回:包括您的边距在内的高度
 662    形参:
 663    obj:指向对象的指针
 664
 665
 666    lv_coord_t lv_obj_get_width_grid(lv_obj_t * obj,uint8_t div,uint8_t span )
 667    功能:划分对象的宽度并获得给定列数的宽度。考虑填充。
 668    返回:根据给定参数的宽度
 669    形参:
 670    obj:指向对象的指针
 671    div:表示假设有多少列。如果为1,则宽度将设置为父级的宽度;如果为2,则只有父级宽度的一半-父级的内部填充;如果为3,则只有第三个父级宽度-2 *父级的内部填充
 672    span:合并了多少列
 673
 674
 675    lv_coord_t lv_obj_get_height_grid(lv_obj_t * obj,uint8_t div,uint8_t span )
 676    功能:划分对象的高度并获得给定列数的宽度。考虑填充。
 677    返回:根据给定参数的高度
 678    形参:
 679    obj:指向对象的指针
 680    div:表示假设有多少行。如果为1,则将设置父级的高度;如果为2,则只有父级的一半高度-父级的内部填充;如果只有3,则只有第三级父级的高度-2 *父级的内部填充
 681    span:合并了多少行
 682
 683
 684    bool lv_obj_get_auto_realign(constlv_obj_t * obj )
 685    功能:获取对象的自动重新对齐属性。
 686    返回:true:启用自动重新对齐;false:禁用自动重新对齐
 687    形参:
 688    obj:指向对象的指针
 689
 690
 691    lv_coord_t lv_obj_get_ext_click_pad_left(constlv_obj_t * obj )
 692    功能:获取扩展的可点击区域的左侧填充
 693    返回:扩展的左填充
 694    形参:
 695    obj:指向对象的指针
 696
 697
 698    lv_coord_t lv_obj_get_ext_click_pad_right(constlv_obj_t * obj )
 699    功能:获取扩展的可点击区域的正确填充
 700    返回:扩展的右填充
 701    形参:
 702    obj:指向对象的指针
 703
 704
 705    lv_coord_t lv_obj_get_ext_click_pad_top(constlv_obj_t * obj )
 706    功能:获取扩展的可点击区域的顶部填充
 707    返回:扩展的顶部填充
 708    形参:
 709    obj:指向对象的指针
 710
 711
 712    lv_coord_t lv_obj_get_ext_click_pad_bottom(constlv_obj_t * obj )
 713    功能:获取扩展的可点击区域的底部填充
 714    返回:扩展的底部填充
 715    形参:
 716    obj:指向对象的指针
 717
 718
 719    lv_coord_t lv_obj_get_ext_draw_pad(constlv_obj_t * obj )
 720    功能:获取对象的扩展尺寸属性
 721    返回:扩展尺寸属性
 722    形参:
 723    obj:指向对象的指针
 724
 725
 726    lv_style_list_t * lv_obj_get_style_list(constlv_obj_t * obj,uint8_t部分)
 727    功能:获取对象零件的样式列表。
 728    返回:指向样式列表的指针。(可以NULL)
 729    形参:
 730    obj:指向对象的指针。
 731    part:part应该获取样式列表的对象部分。例如LV_OBJ_PART_MAIN,LV_BTN_PART_MAIN,LV_SLIDER_PART_KNOB
 732
 733
 734    lv_style_int_t _lv_obj_get_style_int(constlv_obj_t * obj,uint8_t part,lv_style_property_t prop )
 735    功能:获取处于对象当前状态的对象的一部分的样式属性。如果正在运行过渡,则将其考虑在内
 736    返回:
 737    给定零件在当前状态下的属性值。如果找不到该属性,则将返回默认值。
 738    注意:
 739    1.不应直接使用。请改用特定的属性get函数。例如:lv_obj_style_get_border_width()
 740    2.出于性能原因,不检查该属性是否确实具有整数类型
 741    形参:
 742    obj:指向对象的指针
 743    part:应获取样式属性的对象部分。例如LV_OBJ_PART_MAIN,LV_BTN_PART_MAIN,LV_SLIDER_PART_KNOB
 744    prop:要获取的属性。例如LV_STYLE_BORDER_WIDTH。对象的状态将在内部添加
 745
 746
 747    lv_color_t _lv_obj_get_style_color(constlv_obj_t * obj,uint8_t part,lv_style_property_t prop )
 748    功能:获取处于对象当前状态的对象的一部分的样式属性。如果正在运行过渡,则将其考虑在内
 749    返回:
 750    给定零件在当前状态下的属性值。如果找不到该属性,则将返回默认值。
 751    注意:
 752    1.不应直接使用。请改用特定的属性get函数。例如:lv_obj_style_get_border_color()
 753    2.由于性能原因,不会检查属性是否确实具有颜色类型
 754    形参:
 755    obj:指向对象的指针
 756    part:应获取样式属性的对象部分。例如LV_OBJ_PART_MAIN,LV_BTN_PART_MAIN,LV_SLIDER_PART_KNOB
 757    prop:要获取的属性。例如LV_STYLE_BORDER_COLOR。对象的状态将在内部添加
 758
 759
 760    lv_opa_t _lv_obj_get_style_opa(constlv_obj_t * obj,uint8_t part,lv_style_property_t prop )
 761    功能:获取处于对象当前状态的对象的一部分的样式属性。如果正在运行过渡,则将其考虑在内
 762    返回:
 763    给定零件在当前状态下的属性值。如果找不到该属性,则将返回默认值。
 764    注意:
 765    1.不应直接使用。请改用特定的属性get函数。例如:lv_obj_style_get_border_opa()
 766    2.由于性能原因,不检查属性是否确实具有不透明度类型
 767    形参:
 768    obj:指向对象的指针
 769    part:应获取样式属性的对象部分。例如LV_OBJ_PART_MAIN,LV_BTN_PART_MAIN,LV_SLIDER_PART_KNOB
 770    prop:要获取的属性。例如LV_STYLE_BORDER_OPA。对象的状态将在内部添加
 771
 772
 773    constvoid * _lv_obj_get_style_ptr(constlv_obj_t * obj,uint8_t part,lv_style_property_t prop )
 774    功能:获取处于对象当前状态的对象的一部分的样式属性。如果正在运行过渡,则将其考虑在内
 775    返回:
 776    给定零件在当前状态下的属性值。如果找不到该属性,则将返回默认值。
 777    注意:
 778    1.不应直接使用。请改用特定的属性get函数。例如:lv_obj_style_get_border_opa()
 779    2.出于性能原因,不检查该属性是否确实具有指针类型
 780    形参:
 781    obj:指向对象的指针
 782    part:应获取样式属性的对象部分。例如LV_OBJ_PART_MAIN,LV_BTN_PART_MAIN,LV_SLIDER_PART_KNOB
 783    prop:要获取的属性。例如LV_STYLE_TEXT_FONT。对象的状态将在内部添加
 784
 785
 786    lv_style_t * lv_obj_get_local_style(lv_obj_t * obj,uint8_t part)
 787    功能:获取对象部分的局部样式。
 788    返回:
 789    指向本地样式的指针(如果存在)NULL。
 790    形参:
 791    obj:指向对象的指针
 792    part:应设置样式属性的对象部分。例如LV_OBJ_PART_MAIN,LV_BTN_PART_MAIN,LV_SLIDER_PART_KNOB
 793
 794
 795    bool lv_obj_get_hidden(constlv_obj_t * obj )
 796    功能:获取对象的隐藏属性
 797    返回:
 798    true:对象被隐藏
 799    形参:
 800    obj:指向对象的指针
 801
 802
 803    bool lv_obj_get_adv_hittest(constlv_obj_t * obj )
 804    功能:获取是否在对象上启用了高级命中测试
 805    返回:
 806    true:启用高级匹配测试
 807    形参:
 808    obj:指向对象的指针
 809
 810
 811    bool lv_obj_get_click(constlv_obj_t * obj )
 812    功能:获取对象的点击启用属性
 813    返回:
 814    true:可点击对象
 815    形参:
 816    obj:指向对象的指针
 817
 818
 819    bool lv_obj_get_top(constlv_obj_t * obj )
 820    功能:获取对象的顶部启用属性
 821    返回:
 822    true:启用自动顶部功能
 823    形参:
 824    obj:指向对象的指针
 825
 826
 827    bool lv_obj_get_drag(constlv_obj_t * obj )
 828    功能:获取对象的拖动启用属性
 829    返回:
 830    true:对象可拖动
 831    形参:
 832    obj:指向对象的指针
 833
 834
 835    lv_drag_dir_t lv_obj_get_drag_dir(constlv_obj_t * obj )
 836    功能:获取可以拖动对象的方向
 837    返回:
 838    可以将对象拖入允许方向的按位或
 839    形参:
 840    obj:指向对象的指针
 841
 842
 843    bool lv_obj_get_drag_throw(constlv_obj_t * obj )
 844    功能:获取对象的拖动启动属性
 845    返回:
 846    true:启用拖动
 847    形参:
 848    obj:指向对象的指针
 849
 850
 851    bool lv_obj_get_drag_parent(constlv_obj_t * obj )
 852    功能:获取对象的拖动父级属性
 853    返回:
 854    true:启用拖动父级
 855    形参:
 856    obj:指向对象的指针
 857
 858
 859    bool lv_obj_get_focus_parent(constlv_obj_t * obj )
 860    功能:获取对象的焦点父级属性
 861    返回:
 862    true:启用焦点父级
 863    形参:
 864    obj:指向对象的指针
 865
 866
 867    bool lv_obj_get_parent_event(constlv_obj_t * obj )
 868    功能:获取对象的拖动父级属性
 869    返回:
 870    true:启用拖动父级
 871    形参:
 872    obj:指向对象的指针
 873
 874
 875    bool lv_obj_get_gesture_parent(constlv_obj_t * obj )
 876    功能:获取对象的手势父级属性
 877    返回:
 878    true:启用手势父级
 879    形参:
 880    obj:指向对象的指针
 881
 882
 883    lv_bidi_dir_t lv_obj_get_base_dir(constlv_obj_t * obj )
 884    uint8_t lv_obj_get_protect(constlv_obj_t * obj )
 885    功能:获取对象的保护字段
 886    返回:
 887    保护字段(“的”或值lv_protect_t)
 888    形参:
 889    obj:指向对象的指针
 890
 891
 892    bool lv_obj_is_protected(constlv_obj_t * obj,uint8_t prot )
 893    功能:检查是否已设置给定保护位字段的至少一位
 894    返回:
 895    false:未设置任何给定位,true:至少设置了一位
 896    形参:
 897    obj:指向对象的指针
 898    prot:保护要测试的位(的“或”值lv_protect_t)
 899
 900
 901    lv_state_t lv_obj_get_state(constlv_obj_t * obj,uint8_t part)
 902    lv_signal_cb_t lv_obj_get_signal_cb(constlv_obj_t * obj )
 903    功能:获取对象的信号功能
 904    返回:
 905    信号功能
 906    形参:
 907    obj:指向对象的指针
 908
 909
 910    lv_design_cb_t lv_obj_get_design_cb(constlv_obj_t * obj )
 911    功能:获取对象的设计功能
 912    返回:
 913    设计功能
 914    形参:
 915    obj:指向对象的指针
 916
 917
 918    lv_event_cb_t lv_obj_get_event_cb(constlv_obj_t * obj )
 919    功能:获取对象的事件函数
 920    返回:
 921    事件功能
 922    形参:
 923    obj:指向对象的指针
 924
 925
 926    bool lv_obj_is_point_on_coords(lv_obj_t * obj,constlv_point_t *点)
 927    功能:
 928    检查给定的屏幕空间点是否在对象的坐标上。该方法主要用于高级命中测试算法,以检查该点是否在对象内(作为优化)。
 929    形参:
 930    obj:要检查的对象
 931    point:屏幕空间点
 932
 933
 934    bool lv_obj_hittest(lv_obj_t * obj,lv_point_t * point )
 935    功能:对在屏幕空间中特定位置的对象进行命中测试。
 936    返回:
 937    如果对象被认为在该点之下,则返回true
 938    形参:
 939    obj:对象进行命中测试
 940    point:屏幕空间点
 941
 942
 943    void * lv_obj_get_ext_attr(constlv_obj_t * obj )
 944    获取ext指针
 945    返回:
 946    ext指针,而不是动态版本用作ext-> data1,而不是da(ext)-> data1
 947    形参:
 948    obj:指向对象的指针
 949
 950
 951    void lv_obj_get_type(constlv_obj_t * obj,lv_obj_type_t * buf )
 952    功能:获取对象及其祖先类型。将其名称以type_buf当前类型开头。例如buf.type [0] =“ lv_btn”,buf.type [1] =“ lv_cont”,buf.type [2] =“ lv_obj”
 953    形参:
 954    obj:指向应获取类型的对象的指针
 955    buf:指向用于lv_obj_type_t存储类型的缓冲区的指针
 956
 957
 958    lv_obj_user_data_t lv_obj_get_user_data(constlv_obj_t * obj )
 959    功能:获取对象的用户数据
 960    返回:
 961    用户数据
 962    形参:
 963    obj:指向对象的指针
 964
 965
 966    lv_obj_user_data_t * lv_obj_get_user_data_ptr(constlv_obj_t * obj )
 967    功能:获取指向对象的用户数据的指针
 968    返回:
 969    指向用户数据的指针
 970    形参:
 971    obj:指向对象的指针
 972
 973
 974    void lv_obj_set_user_data(lv_obj_t * obj,lv_obj_user_data_t数据)
 975    功能:设置对象的用户数据。数据将被复制。
 976    形参:
 977    obj:指向对象的指针
 978    data: 用户数据
 979
 980
 981    void * lv_obj_get_group(constlv_obj_t * obj )
 982    功能:获取对象组
 983    返回:
 984    指向对象组的指针
 985    形参:
 986    obj:指向对象的指针
 987
 988
 989    bool lv_obj_is_focused(constlv_obj_t * obj )
 990    功能:判断对象是否是组的聚焦对象。
 991    返回:
 992    true:对象已聚焦,false:对象未聚焦或不在组中
 993    形参:
 994    obj:指向对象的指针
 995
 996
 997    lv_obj_t * lv_obj_get_focused_obj(constlv_obj_t * obj )
 998    功能:通过考虑获得真正专注的对象focus_parent。
 999    返回:
1000    真正聚焦的对象
1001    形参:
1002    obj:起始对象
1003
1004
1005    lv_res_t lv_obj_handle_get_type_signal(lv_obj_type_t * buf,const char *name)
1006    功能:用于信号回调中以处理LV_SIGNAL_GET_TYPE信号
1007    返回:
1008    LV_RES_OK
1009    形参:
1010    buf:的指针lv_obj_type_t。(param在信号回调中)
1011    name:对象的名称。例如“ lv_btn”。(仅保存指针)
1012
1013
1014    void lv_obj_init_draw_rect_dsc(lv_obj_t * obj,uint8_t type ,lv_draw_rect_dsc_t * draw_dsc )
1015    功能:根据对象的样式初始化矩形描述符
1016    注意:
1017    仅设置相关字段。例如,是否将不评估其他边框属性。border width == 0
1018    形参:
1019    obj:指向对象的指针
1020    type:样式类型。例如LV_OBJ_PART_MAIN,LV_BTN_SLIDER_KOB
1021    draw_dsc:描述符的初始化
1022
1023
1024    void lv_obj_init_draw_label_dsc(lv_obj_t * obj,uint8_t类型,lv_draw_label_dsc_t * draw_dsc )
1025    void lv_obj_init_draw_img_dsc(lv_obj_t * obj,uint8_t part,lv_draw_img_dsc_t * draw_dsc )
1026    void lv_obj_init_draw_line_dsc(lv_obj_t * obj,uint8_t part,lv_draw_line_dsc_t * draw_dsc )
1027    lv_coord_t lv_obj_get_draw_rect_ext_pad_size(lv_obj_t * obj,uint8_t part )
1028    功能:获取所需的额外大小(围绕对象部分)以绘制阴影,轮廓,值等。
1029    形参:
1030    obj:指向对象的指针
1031    part:对象的一部分
1032
1033
1034    void lv_obj_fade_in(lv_obj_t * obj,uint32_t时间,uint32_t延迟)
1035    功能:使用opa_scale动画淡入(从透明到完全覆盖)对象及其所有子对象。
1036    形参:
1037    obj:淡入的对象
1038    time:动画的持续时间[ms]
1039    delay:等待动画开始播放[ms]
1040
1041
1042    void lv_obj_fade_out(lv_obj_t * obj,uint32_t时间,uint32_t延迟)
1043    功能:使用opa_scale动画淡出(从完全覆盖到透明)对象及其所有子对象。
1044    形参:
1045    obj:淡入的对象
1046    time:动画的持续时间[ms]
1047    delay:等待动画开始播放[ms]
1048
1049
1050    bool lv_debug_check_obj_type(constlv_obj_t * obj,constchar * obj_type )
1051    功能:检查是否有给定类型的对象
1052    返回:
1053    true:有效
1054    形参:
1055    obj:指向对象的指针
1056    obj_type:对象的类型。(例如“ lv_btn”)
1057
1058
1059    bool lv_debug_check_obj_valid(constlv_obj_t * obj )
1060    功能:检查是否还有任何对象“处于活动状态”以及层次struct 的一部分
1061    返回:
1062    true:有效
1063    形参:
1064    obj:指向对象的指针
1065    obj_type:对象的类型。(例如“ lv_btn”)