基础对象(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
2
3
4
5
    lv_obj_t * child = lv_obj_get_child(parent, NULL);
    while(child) {
            /*Do something with "child" */
            child = lv_obj_get_child(parent, child);
    }

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
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
    #include "../../../lv_examples.h"

    void lv_ex_obj_1(void)
    {
            lv_obj_t * obj1;
            obj1 = lv_obj_create(lv_scr_act(), NULL);
            lv_obj_set_size(obj1, 100, 50);
            lv_obj_align(obj1, NULL, LV_ALIGN_CENTER, -60, -30);

            /*Copy the previous object and enable drag*/
            lv_obj_t * obj2;
            obj2 = lv_obj_create(lv_scr_act(), obj1);
            lv_obj_align(obj2, NULL, LV_ALIGN_CENTER, 0, 0);
            lv_obj_set_drag(obj2, true);

            static lv_style_t style_shadow;
            lv_style_init(&style_shadow);
            lv_style_set_shadow_width(&style_shadow, LV_STATE_DEFAULT, 10);
            lv_style_set_shadow_spread(&style_shadow, LV_STATE_DEFAULT, 5);
            lv_style_set_shadow_color(&style_shadow, LV_STATE_DEFAULT, LV_COLOR_BLUE);

            /*Copy the previous object (drag is already enabled)*/
            lv_obj_t * obj3;
            obj3 = lv_obj_create(lv_scr_act(), obj2);
            lv_obj_add_style(obj3, LV_OBJ_PART_MAIN, &style_shadow);
            lv_obj_align(obj3, NULL, LV_ALIGN_CENTER, 60, 30);
    }

相关API

Typedefs

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
    Typedefs uint8_t lv_design_mode_t
    Typedefs uint8_t lv_design_res_t
    /* 设计回调用于在屏幕上绘制对象。它接受对象,遮罩区域以及绘制对象的方式。*/
    Typedefs lv_design_res_t(* lv_design_cb_t)(struct _lv_obj_t * obj,constlv_area_t * clip_area,lv_design_mode_t mode)

    /* 发送到对象的事件类型。*/
    Typedefs uint8_t lv_event_t

    /* 事件回调。事件用于通知用户对该对象正在执行的某些操作。有关详细信息,请参见 lv_event_t。*/
    Typedefs void (* lv_event_cb_t)(struct _lv_obj_t * obj,lv_event_t event )


    Typedefs uint8_t lv_signal_t
    Typedefs lv_res_t(* lv_signal_cb_t)(struct _lv_obj_t * obj,lv_signal_t sign,void * param )
    Typedefs uint8_t lv_protect_t
    Typedefs uint8_t lv_state_t
    Typedefs struct _lv_obj_tlv_obj_t
    Typedefs uint8_t lv_obj_part_t

enums

  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
    enum [anonymous]
    设计模式

    值:
    enumerator LV_DESIGN_DRAW_MAIN /* 绘制对象的主要部分 */
    enumerator LV_DESIGN_DRAW_POST /* 在对象上绘画 */
    enumerator LV_DESIGN_COVER_CHK /* 检查对象是否完全覆盖“ mask_p”区域 */


    enum [anonymous]
    设计结果
    值:
    enumerator LV_DESIGN_RES_OK        /* 准备好 */
    enumerator LV_DESIGN_RES_COVER     /* LV_DESIGN_COVER_CHK 如果区域完全覆盖,则返回 */
    enumerator LV_DESIGN_RES_NOT_COVER /* LV_DESIGN_COVER_CHK 如果未覆盖区域,则返回 */
    enumerator LV_DESIGN_RES_MASKED    /* LV_DESIGN_COVER_CHK 如果区域被遮盖,则返回(子类也不会遮盖)*/


    enum [anonymous]
    值:
    enumerator LV_EVENT_PRESSED             /* 该对象已被按下 */
    enumerator LV_EVENT_PRESSING            /* 按下对象(按下时连续调用)*/
    enumerator LV_EVENT_PRESS_LOST          /* 用户仍在按,但将光标/手指滑离对象 */
    enumerator LV_EVENT_SHORT_CLICKED       /* 用户在短时间内按下对象,然后释放它。如果拖动则不调用。*/
    enumerator LV_EVENT_LONG_PRESSED        /* 对象已被按下至少LV_INDEV_LONG_PRESS_TIME。如果拖动则不调用。*/
    enumerator LV_EVENT_LONG_PRESSED_REPEAT /* LV_INDEV_LONG_PRESS_TIME每LV_INDEV_LONG_PRESS_REP_TIME毫秒调用一次。如果拖动则不调用。*/
    enumerator LV_EVENT_CLICKED             /* 如果未拖动则调用释放(无论长按) */
    enumerator LV_EVENT_RELEASED            /* 在对象释放后的每种情况下调用 */
    enumerator LV_EVENT_DRAG_BEGIN
    enumerator LV_EVENT_DRAG_END
    enumerator LV_EVENT_DRAG_THROW_BEGIN
    enumerator LV_EVENT_GESTURE  /* 对象已被手势 */
    enumerator LV_EVENT_KEY
    enumerator LV_EVENT_FOCUSED
    enumerator LV_EVENT_DEFOCUSED
    enumerator LV_EVENT_LEAVE
    enumerator LV_EVENT_VALUE_CHANGED /* 对象的值已更改(即,滑块已移动) */
    enumerator LV_EVENT_INSERT
    enumerator LV_EVENT_REFRESH
    enumerator LV_EVENT_APPLY   /* 单击“确定”,“应用”或类似的特定按钮 */
    enumerator LV_EVENT_CANCEL  /* 单击了“关闭”,“取消”或类似的特定按钮 */
    enumerator LV_EVENT_DELETE  /* 对象被删除 */
    enumerator _LV_EVENT_LAST   /* 活动数量 */


    enum [anonymous]
    信号供对象本身使用或扩展对象的功能。应用程序应使用lv_obj_set_event_cb来通知对象上发生的事件。
    值:
    enumerator LV_SIGNAL_CLEANUP   /* 对象被删除 */
    enumerator LV_SIGNAL_CHILD_CHG /* 子项已删除/添加 */
    enumerator LV_SIGNAL_COORD_CHG /* 对象坐标/大小已更改 */
    enumerator LV_SIGNAL_PARENT_SIZE_CHG /* 父类的大小已更改 */
    enumerator LV_SIGNAL_STYLE_CHG       /* 对象的样式已更改 */
    enumerator LV_SIGNAL_BASE_DIR_CHG    /* 基本目录已更改 */
    enumerator LV_SIGNAL_REFR_EXT_DRAW_PAD /* 对象的额外填充已更改 */
    enumerator LV_SIGNAL_GET_TYPELVGL      /* 需要检索对象的类型 */
    enumerator LV_SIGNAL_GET_STYLE         /* 获取对象的样式 */
    enumerator LV_SIGNAL_GET_STATE_DSC     /* 获取对象的状态 */
    enumerator LV_SIGNAL_HIT_TEST          /* 命中测试 */
    enumerator LV_SIGNAL_PRESSED           /* 该对象已被按下 */
    enumerator LV_SIGNAL_PRESSING          /* 按下对象(按下时连续调用) */
    enumerator LV_SIGNAL_PRESS_LOST        /* 用户仍在按,但将光标/手指滑离对象 */
    enumerator LV_SIGNAL_RELEASED          /* 用户在短时间内按下对象,然后释放它。如果拖动则不调用。 */
    enumerator LV_SIGNAL_LONG_PRESS        /* 对象已被按下至少LV_INDEV_LONG_PRESS_TIME。如果拖动则不调用。 */
    enumerator LV_SIGNAL_LONG_PRESS_REP    /* LV_INDEV_LONG_PRESS_TIME每LV_INDEV_LONG_PRESS_REP_TIME毫秒调用一次。如果拖动则不调用。 */
    enumerator LV_SIGNAL_DRAG_BEGIN
    enumerator LV_SIGNAL_DRAG_THROW_BEGIN
    enumerator LV_SIGNAL_DRAG_END
    enumerator LV_SIGNAL_GESTURE  /* 对象已被手势 */
    enumerator LV_SIGNAL_LEAVE    /* 通过输入设备单击或选择另一个对象 */
    enumerator LV_SIGNAL_FOCUS
    enumerator LV_SIGNAL_DEFOCUS
    enumerator LV_SIGNAL_CONTROL
    enumerator LV_SIGNAL_GET_EDITABLE

    enum [anonymous]
    值:
    enumerator LV_PROTECT_NONE
    enumerator LV_PROTECT_CHILD_CHG /* 禁用子类更换信号。被库使用 */
    enumerator LV_PROTECT_PARENT    /* 防止自动更改父级(例如,在lv_page中) */
    enumerator LV_PROTECT_POS       /* 防止自动定位(例如,在lv_cont布局中) */
    enumerator LV_PROTECT_FOLLOW    /* 防止在自动排序中遵循对象(例如,在lv_cont PRETTY布局中) */
    enumerator LV_PROTECT_PRESS_LOST  /* 如果indev按的是该对象,但在按时却扫了出去,请勿搜索其他对象。 */
    enumerator LV_PROTECT_CLICK_FOCUS /* 单击以防止聚焦对象 */
    enumerator LV_PROTECT_EVENT_TO_DISABLED /* 甚至将事件传递给禁用的对象 */


    enum [anonymous]
    值:
    enumerator LV_STATE_DEFAULT  /* 默认 */
    enumerator LV_STATE_CHECKED  /* 选中 */
    enumerator LV_STATE_FOCUSED  /* 聚焦 */
    enumerator LV_STATE_EDITED   /* 编辑 */
    enumerator LV_STATE_HOVERED  /* 盘旋 */
    enumerator LV_STATE_PRESSED  /* 按下 */
    enumerator LV_STATE_DISABLED /* 禁用 */

    enum [anonymous]
    值:
    enumerator LV_OBJ_PART_MAIN
    enumerator _LV_OBJ_PART_VIRTUAL_LAST
    enumerator _LV_OBJ_PART_REAL_LAST
    enumerator LV_OBJ_PART_ALL

函数

   1
   2
   3
   4
   5
   6
   7
   8
   9
  10
  11
  12
  13
  14
  15
  16
  17
  18
  19
  20
  21
  22
  23
  24
  25
  26
  27
  28
  29
  30
  31
  32
  33
  34
  35
  36
  37
  38
  39
  40
  41
  42
  43
  44
  45
  46
  47
  48
  49
  50
  51
  52
  53
  54
  55
  56
  57
  58
  59
  60
  61
  62
  63
  64
  65
  66
  67
  68
  69
  70
  71
  72
  73
  74
  75
  76
  77
  78
  79
  80
  81
  82
  83
  84
  85
  86
  87
  88
  89
  90
  91
  92
  93
  94
  95
  96
  97
  98
  99
 100
 101
 102
 103
 104
 105
 106
 107
 108
 109
 110
 111
 112
 113
 114
 115
 116
 117
 118
 119
 120
 121
 122
 123
 124
 125
 126
 127
 128
 129
 130
 131
 132
 133
 134
 135
 136
 137
 138
 139
 140
 141
 142
 143
 144
 145
 146
 147
 148
 149
 150
 151
 152
 153
 154
 155
 156
 157
 158
 159
 160
 161
 162
 163
 164
 165
 166
 167
 168
 169
 170
 171
 172
 173
 174
 175
 176
 177
 178
 179
 180
 181
 182
 183
 184
 185
 186
 187
 188
 189
 190
 191
 192
 193
 194
 195
 196
 197
 198
 199
 200
 201
 202
 203
 204
 205
 206
 207
 208
 209
 210
 211
 212
 213
 214
 215
 216
 217
 218
 219
 220
 221
 222
 223
 224
 225
 226
 227
 228
 229
 230
 231
 232
 233
 234
 235
 236
 237
 238
 239
 240
 241
 242
 243
 244
 245
 246
 247
 248
 249
 250
 251
 252
 253
 254
 255
 256
 257
 258
 259
 260
 261
 262
 263
 264
 265
 266
 267
 268
 269
 270
 271
 272
 273
 274
 275
 276
 277
 278
 279
 280
 281
 282
 283
 284
 285
 286
 287
 288
 289
 290
 291
 292
 293
 294
 295
 296
 297
 298
 299
 300
 301
 302
 303
 304
 305
 306
 307
 308
 309
 310
 311
 312
 313
 314
 315
 316
 317
 318
 319
 320
 321
 322
 323
 324
 325
 326
 327
 328
 329
 330
 331
 332
 333
 334
 335
 336
 337
 338
 339
 340
 341
 342
 343
 344
 345
 346
 347
 348
 349
 350
 351
 352
 353
 354
 355
 356
 357
 358
 359
 360
 361
 362
 363
 364
 365
 366
 367
 368
 369
 370
 371
 372
 373
 374
 375
 376
 377
 378
 379
 380
 381
 382
 383
 384
 385
 386
 387
 388
 389
 390
 391
 392
 393
 394
 395
 396
 397
 398
 399
 400
 401
 402
 403
 404
 405
 406
 407
 408
 409
 410
 411
 412
 413
 414
 415
 416
 417
 418
 419
 420
 421
 422
 423
 424
 425
 426
 427
 428
 429
 430
 431
 432
 433
 434
 435
 436
 437
 438
 439
 440
 441
 442
 443
 444
 445
 446
 447
 448
 449
 450
 451
 452
 453
 454
 455
 456
 457
 458
 459
 460
 461
 462
 463
 464
 465
 466
 467
 468
 469
 470
 471
 472
 473
 474
 475
 476
 477
 478
 479
 480
 481
 482
 483
 484
 485
 486
 487
 488
 489
 490
 491
 492
 493
 494
 495
 496
 497
 498
 499
 500
 501
 502
 503
 504
 505
 506
 507
 508
 509
 510
 511
 512
 513
 514
 515
 516
 517
 518
 519
 520
 521
 522
 523
 524
 525
 526
 527
 528
 529
 530
 531
 532
 533
 534
 535
 536
 537
 538
 539
 540
 541
 542
 543
 544
 545
 546
 547
 548
 549
 550
 551
 552
 553
 554
 555
 556
 557
 558
 559
 560
 561
 562
 563
 564
 565
 566
 567
 568
 569
 570
 571
 572
 573
 574
 575
 576
 577
 578
 579
 580
 581
 582
 583
 584
 585
 586
 587
 588
 589
 590
 591
 592
 593
 594
 595
 596
 597
 598
 599
 600
 601
 602
 603
 604
 605
 606
 607
 608
 609
 610
 611
 612
 613
 614
 615
 616
 617
 618
 619
 620
 621
 622
 623
 624
 625
 626
 627
 628
 629
 630
 631
 632
 633
 634
 635
 636
 637
 638
 639
 640
 641
 642
 643
 644
 645
 646
 647
 648
 649
 650
 651
 652
 653
 654
 655
 656
 657
 658
 659
 660
 661
 662
 663
 664
 665
 666
 667
 668
 669
 670
 671
 672
 673
 674
 675
 676
 677
 678
 679
 680
 681
 682
 683
 684
 685
 686
 687
 688
 689
 690
 691
 692
 693
 694
 695
 696
 697
 698
 699
 700
 701
 702
 703
 704
 705
 706
 707
 708
 709
 710
 711
 712
 713
 714
 715
 716
 717
 718
 719
 720
 721
 722
 723
 724
 725
 726
 727
 728
 729
 730
 731
 732
 733
 734
 735
 736
 737
 738
 739
 740
 741
 742
 743
 744
 745
 746
 747
 748
 749
 750
 751
 752
 753
 754
 755
 756
 757
 758
 759
 760
 761
 762
 763
 764
 765
 766
 767
 768
 769
 770
 771
 772
 773
 774
 775
 776
 777
 778
 779
 780
 781
 782
 783
 784
 785
 786
 787
 788
 789
 790
 791
 792
 793
 794
 795
 796
 797
 798
 799
 800
 801
 802
 803
 804
 805
 806
 807
 808
 809
 810
 811
 812
 813
 814
 815
 816
 817
 818
 819
 820
 821
 822
 823
 824
 825
 826
 827
 828
 829
 830
 831
 832
 833
 834
 835
 836
 837
 838
 839
 840
 841
 842
 843
 844
 845
 846
 847
 848
 849
 850
 851
 852
 853
 854
 855
 856
 857
 858
 859
 860
 861
 862
 863
 864
 865
 866
 867
 868
 869
 870
 871
 872
 873
 874
 875
 876
 877
 878
 879
 880
 881
 882
 883
 884
 885
 886
 887
 888
 889
 890
 891
 892
 893
 894
 895
 896
 897
 898
 899
 900
 901
 902
 903
 904
 905
 906
 907
 908
 909
 910
 911
 912
 913
 914
 915
 916
 917
 918
 919
 920
 921
 922
 923
 924
 925
 926
 927
 928
 929
 930
 931
 932
 933
 934
 935
 936
 937
 938
 939
 940
 941
 942
 943
 944
 945
 946
 947
 948
 949
 950
 951
 952
 953
 954
 955
 956
 957
 958
 959
 960
 961
 962
 963
 964
 965
 966
 967
 968
 969
 970
 971
 972
 973
 974
 975
 976
 977
 978
 979
 980
 981
 982
 983
 984
 985
 986
 987
 988
 989
 990
 991
 992
 993
 994
 995
 996
 997
 998
 999
1000
1001
1002
1003
1004
1005
1006
1007
1008
1009
1010
1011
1012
1013
1014
1015
1016
1017
1018
1019
1020
1021
1022
1023
1024
1025
1026
1027
1028
1029
1030
1031
1032
1033
1034
1035
1036
1037
1038
1039
1040
1041
1042
1043
1044
1045
1046
1047
1048
1049
1050
1051
1052
1053
1054
1055
1056
1057
1058
1059
1060
1061
1062
1063
1064
1065
    void lv_init( void )   /* LVGL初始化 */
    void lv_deinit( void ) /*取消初始化“ lv”库当前仅在不使用自定义分配器或启用GC时实现。*/
    lv_obj_t * lv_obj_create(lv_obj_t *parent,constlv_obj_t * copy)
    功能:创建一个基本对象
    返回:指向新对象的指针
    形参:
    parent:指向父对象的指针。如果为NULL,则将创建一个屏幕
    copy:  指向基础对象的指针,如果不为NULL,则将从其复制新对象


    lv_res_t lv_obj_del(lv_obj_t * obj )
    功能:删除“ obj”及其所有子项
    返回:LV_RES_INV,因为对象已删除
    形参:
    obj:指向要删除的对象的指针


    void lv_obj_del_anim_ready_cb(lv_anim_t * a )
    功能:动画就绪回调中易于使用的函数,可在动画就绪时删除对象
    形参:
    a:指向动画的指针


    void lv_obj_del_async(struct _lv_obj_t * obj )
    功能:辅助函数,用于异步删除对象。在无法直接在LV_EVENT_DELETE处理程序(即父级)中删除对象的情况下很有用。
    形参:
    obj:要删除的对象


    void lv_obj_clean(lv_obj_t * obj )
    功能:删除对象的所有子对象
    形参:
    obj:指向对象的指针


    void lv_obj_invalidate_area(constlv_obj_t * obj,constlv_area_t *area)
    功能:将对象的区域标记为void 。此区域将由“ lv_refr_task”重绘
    形参:
    obj:指向对象的指针
    area:要重绘的区域


    void lv_obj_invalidate(constlv_obj_t * obj )
    功能:将对象标记为void ,因此将通过“ lv_refr_task”重绘其当前位置
    形参:
    obj:指向对象的指针


    bool lv_obj_area_is_visible(constlv_obj_t * obj,lv_area_t * area )
    判断对象的某个区域现在是否可见(甚至部分可见)
    返回:true:可见;假:不可见(隐藏,在父母之外,在其他屏幕上等)
    形参:
    obj:指向对象的指针
    area:检查。该区域的可见部分将写回到这里。


    bool lv_obj_is_visible(constlv_obj_t * obj )
    功能:判断一个对象现在是否可见(甚至部分可见)
    返回:true:可见;假:不可见(隐藏,在父母之外,在其他屏幕上等)
    形参:
    obj:指向对象的指针


    void lv_obj_set_parent(lv_obj_t * obj,lv_obj_t *parent)
    功能:为对象设置一个新的父对象。其相对位置将相同。
    形参:
    obj:指向对象的指针。不能是屏幕。
    parent:指向新父对象的指针。(不能为NULL)


    void lv_obj_move_foreground(lv_obj_t * obj )
    功能:移动并反对前景
    形参:
    obj:指向对象的指针


    void lv_obj_move_background(lv_obj_t * obj )
    功能:移动并反对背景
    形参:
    obj:指向对象的指针


    void lv_obj_set_pos(lv_obj_t * obj,lv_coord_t x,lv_coord_t y )
    功能:设置对象的相对位置(相对于父对象)
    形参:
    obj:指向对象的指针
    x:距父级左侧的新距离
    y:距父级顶部的新距离


    void lv_obj_set_x(lv_obj_t * obj,lv_coord_t x )
    功能:设置对象的x坐标
    形参:
    obj:指向对象的指针
    x:从父级到左侧的新距离


    void lv_obj_set_y(lv_obj_t * obj,lv_coord_t y )
    功能:设置对象的y坐标
    形参:
    obj:指向对象的指针
    y:距父级顶部的新距离


    void lv_obj_set_size(lv_obj_t * obj,lv_coord_t w,lv_coord_t h )
    功能:设置对象的大小
    形参:
    obj:指向对象的指针
    w:新宽度
    h:新高度


    void lv_obj_set_width(lv_obj_t * obj,lv_coord_t w )
    功能:设置对象的宽度
    形参:
    obj:指向对象的指针
    w:新宽度


    void lv_obj_set_height(lv_obj_t * obj,lv_coord_t h )
    功能:设定物件的高度
    形参:
    obj:指向对象的指针
    h:新高度


    void lv_obj_set_width_fit(lv_obj_t * obj,lv_coord_t w )
    功能:设置通过左右填充减少的宽度。
    形参:
    obj:指向对象的指针
    w:没有填充的宽度


    void lv_obj_set_height_fit(lv_obj_t * obj,lv_coord_t h )
    功能:设置通过顶部和底部填充减小的高度。
    形参:
    obj:指向对象的指针
    h:不带衬垫的高度


    void lv_obj_set_width_margin(lv_obj_t * obj,lv_coord_t w )
    功能:通过考虑左边距和右边距来设置对象的宽度。物体的宽度为obj_w = w - margin_left - margin_right
    形参:
    obj:指向对象的指针
    w:包括边距在内的新高度


    void lv_obj_set_height_margin(lv_obj_t * obj,lv_coord_t h )
    功能:通过考虑顶部和底部边距来设置对象的高度。物体高度将为obj_h = h - margin_top - margin_bottom
    形参:
    obj:指向对象的指针
    h:包括边距在内的新高度


    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 )
    功能:将一个对象与另一个对象对齐。
    形参:
    obj:指向要对齐的对象的指针
    base:指向对象的指针(如果为NULL,则使用父对象)。'obj'将与其对齐。
    align:对齐类型(请参见“ lv_align_t”enum )
    x_ofs:对齐后的x坐标偏移
    y_ofs:对齐后的y坐标偏移


    void lv_obj_align_x(lv_obj_t * obj,constlv_obj_t * base,lv_align_t align,lv_coord_t x_ofs )
    功能:将一个对象与另一个对象水平对齐。
    形参:
    obj:指向要对齐的对象的指针
    base:指向对象的指针(如果为NULL,则使用父对象)。'obj'将与其对齐。
    align:对齐类型(请参见“ lv_align_t”enum )
    x_ofs:对齐后的x坐标偏移


    void lv_obj_align_y(lv_obj_t * obj,constlv_obj_t * base,lv_align_t align,lv_coord_t y_ofs )
    功能:将一个对象与另一个对象垂直对齐。
    形参:
    obj:指向要对齐的对象的指针
    base:指向对象的指针(如果为NULL,则使用父对象)。'obj'将与其对齐。
    align:对齐类型(请参见“ lv_align_t”enum )
    y_ofs:对齐后的y坐标偏移


    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 )
    功能:将一个对象与另一个对象对齐。
    形参:
    obj:指向要对齐的对象的指针
    base:指向对象的指针(如果为NULL,则使用父对象)。'obj'将与其对齐。
    align:对齐类型(请参见“ lv_align_t”enum )
    x_ofs:对齐后的x坐标偏移
    y_ofs:对齐后的y坐标偏移


    void lv_obj_align_mid_x(lv_obj_t * obj,constlv_obj_t * base,lv_align_t align,lv_coord_t x_ofs )
    功能:将对象的中点与另一个对象水平对齐。
    形参:
    obj:指向要对齐的对象的指针
    base:指向对象的指针(如果为NULL,则使用父对象)。'obj'将与其对齐。
    align:对齐类型(请参见“ lv_align_t”enum )
    x_ofs:对齐后的x坐标偏移


    void lv_obj_align_mid_y(lv_obj_t * obj,constlv_obj_t * base,lv_align_t align,lv_coord_t y_ofs )
    功能:将对象的中点与另一个对象垂直对齐。
    形参:
    obj:指向要对齐的对象的指针
    base:指向对象的指针(如果为NULL,则使用父对象)。'obj'将与其对齐。
    align:对齐类型(请参见“ lv_align_t”enum )
    y_ofs:对齐后的y坐标偏移


    void lv_obj_realign(lv_obj_t * obj )
    功能:根据最后一个lv_obj_align参数重新对齐对象。
    形参:
    obj:指向对象的指针


    void lv_obj_set_auto_realign(lv_obj_t * obj,bool en )
    功能:当对象的大小根据最后一个lv_obj_align参数更改时,启用对象的自动重新对齐。
    形参:
    obj:指向对象的指针
    en:true:启用自动重新对齐;false:禁用自动重新对齐


    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)
    功能:设置扩展的可点击区域的大小
    形参:
    obj:指向对象的指针
    left:可扩展点击位于左侧[px]
    right:可扩展点击位于右侧[px]
    top:扩展的可点击位于顶部[px]
    bottom:可扩展点击位于底部[px]


    void lv_obj_add_style(lv_obj_t * obj,uint8_t part,lv_style_t * style )
    功能:将新样式添加到对象的样式列表。
    形参:
    obj:指向对象的指针
    part:应设置样式属性的对象部分。例如LV_OBJ_PART_MAIN,LV_BTN_PART_MAIN,LV_SLIDER_PART_KNOB
    style:指向要添加样式的指针(仅会保存其指针)


    void lv_obj_remove_style(lv_obj_t * obj,uint8_t part,lv_style_t * style )
    功能:从对象的样式列表中删除样式。
    形参:
    obj:指向对象的指针
    part:应设置样式属性的对象部分。例如LV_OBJ_PART_MAIN,LV_BTN_PART_MAIN,LV_SLIDER_PART_KNOB
    style:指向要删除的样式的指针


    void lv_obj_clean_style_list(lv_obj_t * obj,uint8_t part )
    功能:将样式重置为默认(空)状态。释放所有已使用的内存,并取消待处理的相关转换。通常用于`LV_SIGN_CLEAN_UP。
    形参:
    obj:指向对象的指针
    part:应重置样式列表的对象部分。例如LV_OBJ_PART_MAIN,LV_BTN_PART_MAIN,LV_SLIDER_PART_KNOB


    void lv_obj_reset_style_list(lv_obj_t * obj,uint8_t part )
    功能:将样式重置为默认(空)状态。释放所有已使用的内存,并取消待处理的相关转换。还通知对象有关样式更改的信息。
    形参:
    obj:指向对象的指针
    part:应重置样式列表的对象部分。例如LV_OBJ_PART_MAIN,LV_BTN_PART_MAIN,LV_SLIDER_PART_KNOB


    void lv_obj_refresh_style(lv_obj_t * obj,uint8_t part,lv_style_property_t prop )
    功能:通知对象(及其子对象)其样式已修改
    形参:
    obj:指向对象的指针
    prop:LV_STYLE_PROP_ALL或LV_STYLE_...财产。它用于优化需要刷新的内容。


    void lv_obj_report_style_mod( lv_style_t *style)
    功能:修改样式时通知所有对象
    形参:
    style:指向样式的指针。仅具有这种样式的对象将被通知(NULL通知所有对象)

    void _lv_obj_set_style_local_color(lv_obj_t * OBJ,uint8_t part,lv_style_property_t prop,lv_color_t the)
    功能:在给定状态下设置对象的一部分的局部样式属性。
    注意:
    1.不应直接使用。请改用特定的属性get函数。例如:lv_obj_style_get_border_opa()
    2.由于性能原因,不会检查属性是否确实具有颜色类型
    形参:
    obj:指向对象的指针
    part:应设置样式属性的对象部分。例如LV_OBJ_PART_MAIN,LV_BTN_PART_MAIN,LV_SLIDER_PART_KNOB
    prop:样式属性与状态或。例如LV_STYLE_BORDER_COLOR | (LV_STATE_PRESSED << LV_STYLE_STATE_POS)
    the:要设置的值


    void _lv_obj_set_style_local_int(lv_obj_t * OBJ,uint8_t part,lv_style_property_t prop,lv_style_int_t the)
    功能:在给定状态下设置对象的一部分的局部样式属性。
    注意:
    1.不应直接使用。请改用特定的属性get函数。例如:lv_obj_style_get_border_opa()
    2.出于性能原因,不检查该属性是否确实具有整数类型
    形参:
    obj:指向对象的指针
    part:应设置样式属性的对象部分。例如LV_OBJ_PART_MAIN,LV_BTN_PART_MAIN,LV_SLIDER_PART_KNOB
    prop:样式属性与状态或。例如LV_STYLE_BORDER_WIDTH | (LV_STATE_PRESSED << LV_STYLE_STATE_POS)
    the:要设置的值


    void _lv_obj_set_style_local_opa(lv_obj_t * obj,uint8_t part,lv_style_property_t prop,lv_opa_t opa )
    功能:在给定状态下设置对象的一部分的局部样式属性。
    注意:
    1.不应直接使用。请改用特定的属性get函数。例如:lv_obj_style_get_border_opa()
    2.由于性能原因,不检查属性是否确实具有不透明度类型
    形参:
    obj:指向对象的指针
    part:应设置样式属性的对象部分。例如LV_OBJ_PART_MAIN,LV_BTN_PART_MAIN,LV_SLIDER_PART_KNOB
    prop:样式属性与状态或。例如LV_STYLE_BORDER_OPA | (LV_STATE_PRESSED << LV_STYLE_STATE_POS)
    the:要设置的值


    void _lv_obj_set_style_local_ptr(lv_obj_t * obj,uint8_t type,lv_style_property_t prop,constvoid *the)
    功能:在给定状态下设置对象的一部分的局部样式属性。
    注意:
    1.不应直接使用。请改用特定的属性get函数。例如:lv_obj_style_get_border_opa()
    2.出于性能原因,不检查该属性是否确实具有指针类型
    形参:
    obj:指向对象的指针
    part:应设置样式属性的对象部分。例如LV_OBJ_PART_MAIN,LV_BTN_PART_MAIN,LV_SLIDER_PART_KNOB
    prop:样式属性与状态或。例如LV_STYLE_TEXT_FONT | (LV_STATE_PRESSED << LV_STYLE_STATE_POS)
    the:要设置的值


    bool lv_obj_remove_style_local_prop(lv_obj_t * obj,uint8_t part,lv_style_property_t prop )
    功能:从具有给定状态的对象的一部分中删除局部样式属性。
    注意:
    不应直接使用。请改用特定的属性删除功能。例如:lv_obj_style_remove_border_opa()
    返回:true:已找到并删除了该属性;false:找不到该属性
    形参:
    obj:指向对象的指针
    part:对象的应删除样式属性的部分。例如LV_OBJ_PART_MAIN,LV_BTN_PART_MAIN,LV_SLIDER_PART_KNOB
    prop:样式属性与状态或。例如LV_STYLE_TEXT_FONT | (LV_STATE_PRESSED << LV_STYLE_STATE_POS)


    void _lv_obj_disable_style_caching(lv_obj_t * obj,bool dis )
    功能:启用/禁用对象的样式缓存
    形参:
    obj:指向对象的指针
    dis:true:禁用;false:启用(重新启用)


    void lv_obj_set_hidden(lv_obj_t * obj,bool en )
    功能:隐藏对象。它不会显示和单击。
    形参:
    obj:指向对象的指针
    en:true:隐藏对象

    void lv_obj_set_adv_hittest(lv_obj_t * obj,bool en )
    功能:设置是否在对象上启用高级命中测试
    形参:
    obj:指向对象的指针
    en:true:启用高级命中测试


    void lv_obj_set_click(lv_obj_t * obj,bool en )
    功能:启用或禁用对象单击
    形参:
    obj:指向对象的指针
    en:true:使对象可点击


    void lv_obj_set_top(lv_obj_t * obj,bool en )
    功能:如果单击该对象或其任何子对象,则启用该对象
    形参:
    obj:指向对象的指针
    en:true:启用自动顶部功能


    void lv_obj_set_drag(lv_obj_t * obj,bool en )
    功能:启用对象拖动
    形参:
    obj:指向对象的指针
    en:true:使对象可拖动


    void lv_obj_set_drag_dir(lv_obj_t * obj,lv_drag_dir_t drag_dir )
    功能:设置可以拖动对象的方向
    形参:
    obj:指向对象的指针
    drag_dir:允许的拖动方向的按位或


    void lv_obj_set_drag_throw(lv_obj_t * obj,bool en )
    功能:拖动后启用对象投掷
    形参:
    obj:指向对象的指针
    en:true:启用拖动


    void lv_obj_set_drag_parent(lv_obj_t * obj,bool en )
    功能:启用将父项用于拖动相关的操作。如果尝试拖动对象,则将父对象移动
    形参:
    obj:指向对象的指针
    en:true:为对象启用“拖动父对象”


    void lv_obj_set_focus_parent(lv_obj_t * obj,bool en )
    功能:启用以将父级用于焦点状态。当对象聚焦时,父级将获得状态(仅可见)
    形参:
    obj:指向对象的指针
    en:true:为对象启用“焦点父对象”


    void lv_obj_set_gesture_parent(lv_obj_t * obj,bool en )
    功能:启用将父项用于手势相关操作。如果尝试手势对象,则将父对象移动
    形参:
    obj:指向对象的指针
    en:true:为对象启用“手势父级”


    void lv_obj_set_parent_event(lv_obj_t * obj,bool en )
    功能:也将事件传播给父级
    形参:
    obj:指向对象的指针
    en:true:启用事件传播


    void lv_obj_set_base_dir(lv_obj_t * obj,lv_bidi_dir_t dir )
    功能:设置对象的基本方向
    注意:
    仅在启用LV_USE_BIDI的情况下才有效。
    形参:
    obj:指向对象的指针
    dir:新的基本方向。 LV_BIDI_DIR_LTR/RTL/AUTO/INHERIT


    void lv_obj_add_protect(lv_obj_t * obj,uint8_t prot )
    功能:在保护字段中设置一个或多个位
    形参:
    obj:指向对象的指针
    prot:来自“或”的值 lv_protect_t


    void lv_obj_clear_protect(lv_obj_t * obj,uint8_t prot )
    功能:清除保护字段中的一个或多个位
    形参:
    obj:指向对象的指针
    prot:来自“或”的值 lv_protect_t


    void lv_obj_set_state(lv_obj_t * obj,lv_state_t state)
    功能:设置对象的状态(完全覆盖)。如果在样式中指定,则过渡动画将从前一状态开始到当前状态
    形参:
    obj:指向对象的指针
    state:新状态


    void lv_obj_add_state(lv_obj_t * obj,lv_state_t state)
    功能:将一个或多个给定状态添加到对象。其他状态位将保持不变。如果在样式中指定,则过渡动画将从前一状态开始到当前状态
    形参:
    obj:指向对象的指针
    state:要添加的状态位。例如LV_STATE_PRESSED | LV_STATE_FOCUSED


    void lv_obj_clear_state(lv_obj_t * obj,lv_state_t state)
    功能:删除对象的给定状态。其他状态位将保持不变。如果在样式中指定,则过渡动画将从前一状态开始到当前状态
    形参:
    obj:指向对象的指针
    state:要删除的状态位。例如LV_STATE_PRESSED | LV_STATE_FOCUSED


    void lv_obj_finish_transitions(lv_obj_t * obj,uint8_t part )
    功能:在对象的一部分上完成所有挂起的过渡
    形参:
    obj:指向对象的指针
    part:对象的一部分,例如LV_BRN_PART_MAIN或LV_OBJ_PART_ALL所有部分


    void lv_obj_set_event_cb(lv_obj_t * obj,lv_event_cb_t event_cb )
    功能:为对象设置事件处理函数。用户用于对对象发生的事件做出反应。
    形参:
    obj:指向对象的指针
    event_cb:新事件功能


    lv_res_t lv_event_send(lv_obj_t * obj,lv_event_t event,constvoid * data)
    功能:向对象发送事件
    返回:LV_RES_OK:obj在事件中没有被删除;LV_RES_INV:obj在事件中被删除
    形参:
    obj:指向对象的指针
    event:来自的事件类型lv_event_t。
    data:取决于对象类型和事件的任意数据。(通常NULL)


    lv_res_t lv_event_send_refresh(lv_obj_t * obj )
    功能:将LV_EVENT_REFRESH事件发送到对象
    返回:LV_RES_OK:成功,LV_RES_INV:对象由于该事件而变得void (例如,删除)。
    形参:
    obj:指向一个对象。(不能为NULL)


    void lv_event_send_refresh_recursive(lv_obj_t * obj )
    功能:将LV_EVENT_REFRESH事件发送给对象及其所有子对象
    形参:
    obj:指向一个对象的指针,或者为NULL以刷新所有显示的所有对象


    lv_res_t lv_event_send_func(lv_event_cb_t event_xcb,lv_obj_t * obj,lv_event_t event,constvoid *data)
    功能:使用对象,事件和数据调用事件函数。
    返回:LV_RES_OK:obj在事件中没有被删除;LV_RES_INV:obj在事件中被删除
    形参:
    event_xcb:事件回调函数。如果NULL LV_RES_OK返回,则不执行任何操作。(参数名称中的“ x”表示它不是完全通用的函数,因为它不遵循约定)func_name(object, callback, ...)
    obj:指向与事件关联的对象的指针(可以NULL简单地调用event_cb)
    event: 一个事件
    data:指向自定义数据的指针


    constvoid * lv_event_get_data(void )
    功能:获取data当前事件的参数
    返回
    该data参数

    void lv_obj_set_signal_cb(lv_obj_t * obj,lv_signal_cb_t signal_cb )
    功能:设置对象的信号功能。由库内部使用。始终在新信号中调用前一个信号功能。
    形参:
    obj:指向对象的指针
    signal_cb:新信号功能


    lv_res_t lv_signal_send(lv_obj_t * obj,lv_signal_t signal,void * param )
    功能:向对象发送事件
    返回:LV_RES_OK或LV_RES_INV
    形参:
    obj:指向对象的指针
    event:来自的事件类型lv_event_t。


    void lv_obj_set_design_cb(lv_obj_t * obj,lv_design_cb_t design_cb )
    功能:为对象设置新的设计功能
    形参:
    obj:指向对象的指针
    design_cb:新的设计功能


    void * lv_obj_allocate_ext_attr(lv_obj_t * obj,uint16_t ext_size )
    功能:分配一个新的分机。对象的数据
    返回:指向分配的ext的指针
    形参:
    obj:指向对象的指针
    ext_size:新分机的大小。数据


    void lv_obj_refresh_ext_draw_pad(lv_obj_t * obj )
    功能:向对象发送“ LV_SIGNAL_REFR_EXT_SIZE”信号以刷新扩展的绘制区域。lv_obj_invalidate(obj)此功能后,需要手动使对象void 。
    形参:
    obj:指向对象的指针


    lv_obj_t * lv_obj_get_screen(constlv_obj_t * obj )
    功能:返回对象的屏幕
    返回:指向屏幕的指针
    形参:
    obj:指向对象的指针


    lv_disp_t * lv_obj_get_disp(constlv_obj_t * obj )
    功能:获取对象的显示
    返回:指针对象的显示

    lv_obj_t * lv_obj_get_parent(constlv_obj_t * obj )
    功能:返回对象的父对象
    返回:指向“ obj”的父对象的指针
    形参:
    obj:指向对象的指针


    lv_obj_t * lv_obj_get_child(constlv_obj_t * obj,constlv_obj_t * child )
    功能:遍历对象的子项(从“最新的,最后创建的”开始)
    返回:'act_child'之后的子级;如果没有更多子级,则为NULL
    形参:
    obj:指向对象的指针
    child:第一次调用时为NULL,以获取下一个子类,以后再返回上一个返回值


    lv_obj_t * lv_obj_get_child_back(constlv_obj_t * obj,constlv_obj_t * child )
    功能:遍历对象的子项(从“最早的”开始,首先创建)
    返回:'act_child'之后的子级;如果没有更多子级,则为NULL
    形参:
    obj:指向对象的指针
    child:第一次调用时为NULL,以获取下一个子类,以后再返回上一个返回值


    uint16_t lv_obj_count_children(constlv_obj_t * obj )
    功能:计算对象的子代(仅直接在“ obj”上的子代)
    返回:'obj'的子代号
    形参:
    obj:指向对象的指针


    uint16_t lv_obj_count_children_recursive(constlv_obj_t * obj )
    功能:递归计算对象的子代
    返回:'obj'的子代号
    形参:
    obj:指向对象的指针


    void lv_obj_get_coords(constlv_obj_t * obj,lv_area_t * cords_p )
    功能:将对象的坐标复制到区域
    形参:
    obj:指向对象的指针
    cords_p:指向存储坐标的区域的指针


    void lv_obj_get_inner_coords(constlv_obj_t * obj,lv_area_t * coords_p )
    功能:减少由lv_obj_get_coords()对象的图形可用区域重试的区域。(没有边框的大小或其他额外的图形元素)
    形参:
    coords_p:将结果区域存储在此处


    lv_coord_t lv_obj_get_x(constlv_obj_t * obj )
    功能:获取对象的x坐标
    返回:“ obj”到其父对象左侧的距离
    形参:
    obj:指向对象的指针


    lv_coord_t lv_obj_get_y(constlv_obj_t * obj )
    功能:获取对象的y坐标
    返回:“ obj”到其父对象顶部的距离
    形参:
    obj:指向对象的指针


    lv_coord_t lv_obj_get_width(constlv_obj_t * obj )
    功能:获取对象的宽度
    返回:宽度
    形参:
    obj:指向对象的指针


    lv_coord_t lv_obj_get_height(constlv_obj_t * obj )
    功能:获取对象的高度
    返回:高度
    形参:
    obj:指向对象的指针


    lv_coord_t lv_obj_get_width_fit(constlv_obj_t * obj )
    功能:通过左右填充减少宽度。
    返回:仍然适合容器的宽度
    形参:
    obj:指向对象的指针


    lv_coord_t lv_obj_get_height_fit(constlv_obj_t * obj )
    功能:通过顶部底部填充减少高度。
    返回:仍然适合容器的高度
    形参:
    obj:指向对象的指针


    lv_coord_t lv_obj_get_height_margin(lv_obj_t * obj )
    功能:通过考虑顶部和底部边距来获取对象的高度。返回的高度将是obj_h + margin_top + margin_bottom
    返回:包括您的边距在内的高度
    形参:
    obj:指向对象的指针


    lv_coord_t lv_obj_get_width_margin(lv_obj_t * obj )
    功能:通过考虑左边距和右边距来获得对象的宽度。返回的宽度将是obj_w + margin_left + margin_right
    返回:包括您的边距在内的高度
    形参:
    obj:指向对象的指针


    lv_coord_t lv_obj_get_width_grid(lv_obj_t * obj,uint8_t div,uint8_t span )
    功能:划分对象的宽度并获得给定列数的宽度。考虑填充。
    返回:根据给定参数的宽度
    形参:
    obj:指向对象的指针
    div:表示假设有多少列。如果为1,则宽度将设置为父级的宽度;如果为2,则只有父级宽度的一半-父级的内部填充;如果为3,则只有第三个父级宽度-2 *父级的内部填充
    span:合并了多少列


    lv_coord_t lv_obj_get_height_grid(lv_obj_t * obj,uint8_t div,uint8_t span )
    功能:划分对象的高度并获得给定列数的宽度。考虑填充。
    返回:根据给定参数的高度
    形参:
    obj:指向对象的指针
    div:表示假设有多少行。如果为1,则将设置父级的高度;如果为2,则只有父级的一半高度-父级的内部填充;如果只有3,则只有第三级父级的高度-2 *父级的内部填充
    span:合并了多少行


    bool lv_obj_get_auto_realign(constlv_obj_t * obj )
    功能:获取对象的自动重新对齐属性。
    返回:true:启用自动重新对齐;false:禁用自动重新对齐
    形参:
    obj:指向对象的指针


    lv_coord_t lv_obj_get_ext_click_pad_left(constlv_obj_t * obj )
    功能:获取扩展的可点击区域的左侧填充
    返回:扩展的左填充
    形参:
    obj:指向对象的指针


    lv_coord_t lv_obj_get_ext_click_pad_right(constlv_obj_t * obj )
    功能:获取扩展的可点击区域的正确填充
    返回:扩展的右填充
    形参:
    obj:指向对象的指针


    lv_coord_t lv_obj_get_ext_click_pad_top(constlv_obj_t * obj )
    功能:获取扩展的可点击区域的顶部填充
    返回:扩展的顶部填充
    形参:
    obj:指向对象的指针


    lv_coord_t lv_obj_get_ext_click_pad_bottom(constlv_obj_t * obj )
    功能:获取扩展的可点击区域的底部填充
    返回:扩展的底部填充
    形参:
    obj:指向对象的指针


    lv_coord_t lv_obj_get_ext_draw_pad(constlv_obj_t * obj )
    功能:获取对象的扩展尺寸属性
    返回:扩展尺寸属性
    形参:
    obj:指向对象的指针


    lv_style_list_t * lv_obj_get_style_list(constlv_obj_t * obj,uint8_t部分)
    功能:获取对象零件的样式列表。
    返回:指向样式列表的指针。(可以NULL)
    形参:
    obj:指向对象的指针。
    part:part应该获取样式列表的对象部分。例如LV_OBJ_PART_MAIN,LV_BTN_PART_MAIN,LV_SLIDER_PART_KNOB


    lv_style_int_t _lv_obj_get_style_int(constlv_obj_t * obj,uint8_t part,lv_style_property_t prop )
    功能:获取处于对象当前状态的对象的一部分的样式属性。如果正在运行过渡,则将其考虑在内
    返回:
    给定零件在当前状态下的属性值。如果找不到该属性,则将返回默认值。
    注意:
    1.不应直接使用。请改用特定的属性get函数。例如:lv_obj_style_get_border_width()
    2.出于性能原因,不检查该属性是否确实具有整数类型
    形参:
    obj:指向对象的指针
    part:应获取样式属性的对象部分。例如LV_OBJ_PART_MAIN,LV_BTN_PART_MAIN,LV_SLIDER_PART_KNOB
    prop:要获取的属性。例如LV_STYLE_BORDER_WIDTH。对象的状态将在内部添加


    lv_color_t _lv_obj_get_style_color(constlv_obj_t * obj,uint8_t part,lv_style_property_t prop )
    功能:获取处于对象当前状态的对象的一部分的样式属性。如果正在运行过渡,则将其考虑在内
    返回:
    给定零件在当前状态下的属性值。如果找不到该属性,则将返回默认值。
    注意:
    1.不应直接使用。请改用特定的属性get函数。例如:lv_obj_style_get_border_color()
    2.由于性能原因,不会检查属性是否确实具有颜色类型
    形参:
    obj:指向对象的指针
    part:应获取样式属性的对象部分。例如LV_OBJ_PART_MAIN,LV_BTN_PART_MAIN,LV_SLIDER_PART_KNOB
    prop:要获取的属性。例如LV_STYLE_BORDER_COLOR。对象的状态将在内部添加


    lv_opa_t _lv_obj_get_style_opa(constlv_obj_t * obj,uint8_t part,lv_style_property_t prop )
    功能:获取处于对象当前状态的对象的一部分的样式属性。如果正在运行过渡,则将其考虑在内
    返回:
    给定零件在当前状态下的属性值。如果找不到该属性,则将返回默认值。
    注意:
    1.不应直接使用。请改用特定的属性get函数。例如:lv_obj_style_get_border_opa()
    2.由于性能原因,不检查属性是否确实具有不透明度类型
    形参:
    obj:指向对象的指针
    part:应获取样式属性的对象部分。例如LV_OBJ_PART_MAIN,LV_BTN_PART_MAIN,LV_SLIDER_PART_KNOB
    prop:要获取的属性。例如LV_STYLE_BORDER_OPA。对象的状态将在内部添加


    constvoid * _lv_obj_get_style_ptr(constlv_obj_t * obj,uint8_t part,lv_style_property_t prop )
    功能:获取处于对象当前状态的对象的一部分的样式属性。如果正在运行过渡,则将其考虑在内
    返回:
    给定零件在当前状态下的属性值。如果找不到该属性,则将返回默认值。
    注意:
    1.不应直接使用。请改用特定的属性get函数。例如:lv_obj_style_get_border_opa()
    2.出于性能原因,不检查该属性是否确实具有指针类型
    形参:
    obj:指向对象的指针
    part:应获取样式属性的对象部分。例如LV_OBJ_PART_MAIN,LV_BTN_PART_MAIN,LV_SLIDER_PART_KNOB
    prop:要获取的属性。例如LV_STYLE_TEXT_FONT。对象的状态将在内部添加


    lv_style_t * lv_obj_get_local_style(lv_obj_t * obj,uint8_t part)
    功能:获取对象部分的局部样式。
    返回:
    指向本地样式的指针(如果存在)NULL。
    形参:
    obj:指向对象的指针
    part:应设置样式属性的对象部分。例如LV_OBJ_PART_MAIN,LV_BTN_PART_MAIN,LV_SLIDER_PART_KNOB


    bool lv_obj_get_hidden(constlv_obj_t * obj )
    功能:获取对象的隐藏属性
    返回:
    true:对象被隐藏
    形参:
    obj:指向对象的指针


    bool lv_obj_get_adv_hittest(constlv_obj_t * obj )
    功能:获取是否在对象上启用了高级命中测试
    返回:
    true:启用高级匹配测试
    形参:
    obj:指向对象的指针


    bool lv_obj_get_click(constlv_obj_t * obj )
    功能:获取对象的点击启用属性
    返回:
    true:可点击对象
    形参:
    obj:指向对象的指针


    bool lv_obj_get_top(constlv_obj_t * obj )
    功能:获取对象的顶部启用属性
    返回:
    true:启用自动顶部功能
    形参:
    obj:指向对象的指针


    bool lv_obj_get_drag(constlv_obj_t * obj )
    功能:获取对象的拖动启用属性
    返回:
    true:对象可拖动
    形参:
    obj:指向对象的指针


    lv_drag_dir_t lv_obj_get_drag_dir(constlv_obj_t * obj )
    功能:获取可以拖动对象的方向
    返回:
    可以将对象拖入允许方向的按位或
    形参:
    obj:指向对象的指针


    bool lv_obj_get_drag_throw(constlv_obj_t * obj )
    功能:获取对象的拖动启动属性
    返回:
    true:启用拖动
    形参:
    obj:指向对象的指针


    bool lv_obj_get_drag_parent(constlv_obj_t * obj )
    功能:获取对象的拖动父级属性
    返回:
    true:启用拖动父级
    形参:
    obj:指向对象的指针


    bool lv_obj_get_focus_parent(constlv_obj_t * obj )
    功能:获取对象的焦点父级属性
    返回:
    true:启用焦点父级
    形参:
    obj:指向对象的指针


    bool lv_obj_get_parent_event(constlv_obj_t * obj )
    功能:获取对象的拖动父级属性
    返回:
    true:启用拖动父级
    形参:
    obj:指向对象的指针


    bool lv_obj_get_gesture_parent(constlv_obj_t * obj )
    功能:获取对象的手势父级属性
    返回:
    true:启用手势父级
    形参:
    obj:指向对象的指针


    lv_bidi_dir_t lv_obj_get_base_dir(constlv_obj_t * obj )
    uint8_t lv_obj_get_protect(constlv_obj_t * obj )
    功能:获取对象的保护字段
    返回:
    保护字段(“的”或值lv_protect_t)
    形参:
    obj:指向对象的指针


    bool lv_obj_is_protected(constlv_obj_t * obj,uint8_t prot )
    功能:检查是否已设置给定保护位字段的至少一位
    返回:
    false:未设置任何给定位,true:至少设置了一位
    形参:
    obj:指向对象的指针
    prot:保护要测试的位(的“或”值lv_protect_t)


    lv_state_t lv_obj_get_state(constlv_obj_t * obj,uint8_t part)
    lv_signal_cb_t lv_obj_get_signal_cb(constlv_obj_t * obj )
    功能:获取对象的信号功能
    返回:
    信号功能
    形参:
    obj:指向对象的指针


    lv_design_cb_t lv_obj_get_design_cb(constlv_obj_t * obj )
    功能:获取对象的设计功能
    返回:
    设计功能
    形参:
    obj:指向对象的指针


    lv_event_cb_t lv_obj_get_event_cb(constlv_obj_t * obj )
    功能:获取对象的事件函数
    返回:
    事件功能
    形参:
    obj:指向对象的指针


    bool lv_obj_is_point_on_coords(lv_obj_t * obj,constlv_point_t *点)
    功能:
    检查给定的屏幕空间点是否在对象的坐标上。该方法主要用于高级命中测试算法,以检查该点是否在对象内(作为优化)。
    形参:
    obj:要检查的对象
    point:屏幕空间点


    bool lv_obj_hittest(lv_obj_t * obj,lv_point_t * point )
    功能:对在屏幕空间中特定位置的对象进行命中测试。
    返回:
    如果对象被认为在该点之下,则返回true
    形参:
    obj:对象进行命中测试
    point:屏幕空间点


    void * lv_obj_get_ext_attr(constlv_obj_t * obj )
    获取ext指针
    返回:
    ext指针,而不是动态版本用作ext-> data1,而不是da(ext)-> data1
    形参:
    obj:指向对象的指针


    void lv_obj_get_type(constlv_obj_t * obj,lv_obj_type_t * buf )
    功能:获取对象及其祖先类型。将其名称以type_buf当前类型开头。例如buf.type [0] =“ lv_btn”,buf.type [1] =“ lv_cont”,buf.type [2] =“ lv_obj”
    形参:
    obj:指向应获取类型的对象的指针
    buf:指向用于lv_obj_type_t存储类型的缓冲区的指针


    lv_obj_user_data_t lv_obj_get_user_data(constlv_obj_t * obj )
    功能:获取对象的用户数据
    返回:
    用户数据
    形参:
    obj:指向对象的指针


    lv_obj_user_data_t * lv_obj_get_user_data_ptr(constlv_obj_t * obj )
    功能:获取指向对象的用户数据的指针
    返回:
    指向用户数据的指针
    形参:
    obj:指向对象的指针


    void lv_obj_set_user_data(lv_obj_t * obj,lv_obj_user_data_t数据)
    功能:设置对象的用户数据。数据将被复制。
    形参:
    obj:指向对象的指针
    data: 用户数据


    void * lv_obj_get_group(constlv_obj_t * obj )
    功能:获取对象组
    返回:
    指向对象组的指针
    形参:
    obj:指向对象的指针


    bool lv_obj_is_focused(constlv_obj_t * obj )
    功能:判断对象是否是组的聚焦对象。
    返回:
    true:对象已聚焦,false:对象未聚焦或不在组中
    形参:
    obj:指向对象的指针


    lv_obj_t * lv_obj_get_focused_obj(constlv_obj_t * obj )
    功能:通过考虑获得真正专注的对象focus_parent。
    返回:
    真正聚焦的对象
    形参:
    obj:起始对象


    lv_res_t lv_obj_handle_get_type_signal(lv_obj_type_t * buf,const char *name)
    功能:用于信号回调中以处理LV_SIGNAL_GET_TYPE信号
    返回:
    LV_RES_OK
    形参:
    buf:的指针lv_obj_type_t。(param在信号回调中)
    name:对象的名称。例如“ lv_btn”。(仅保存指针)


    void lv_obj_init_draw_rect_dsc(lv_obj_t * obj,uint8_t type ,lv_draw_rect_dsc_t * draw_dsc )
    功能:根据对象的样式初始化矩形描述符
    注意:
    仅设置相关字段。例如,是否将不评估其他边框属性。border width == 0
    形参:
    obj:指向对象的指针
    type:样式类型。例如LV_OBJ_PART_MAIN,LV_BTN_SLIDER_KOB
    draw_dsc:描述符的初始化


    void lv_obj_init_draw_label_dsc(lv_obj_t * obj,uint8_t类型,lv_draw_label_dsc_t * draw_dsc )
    void lv_obj_init_draw_img_dsc(lv_obj_t * obj,uint8_t part,lv_draw_img_dsc_t * draw_dsc )
    void lv_obj_init_draw_line_dsc(lv_obj_t * obj,uint8_t part,lv_draw_line_dsc_t * draw_dsc )
    lv_coord_t lv_obj_get_draw_rect_ext_pad_size(lv_obj_t * obj,uint8_t part )
    功能:获取所需的额外大小(围绕对象部分)以绘制阴影,轮廓,值等。
    形参:
    obj:指向对象的指针
    part:对象的一部分


    void lv_obj_fade_in(lv_obj_t * obj,uint32_t时间,uint32_t延迟)
    功能:使用opa_scale动画淡入(从透明到完全覆盖)对象及其所有子对象。
    形参:
    obj:淡入的对象
    time:动画的持续时间[ms]
    delay:等待动画开始播放[ms]


    void lv_obj_fade_out(lv_obj_t * obj,uint32_t时间,uint32_t延迟)
    功能:使用opa_scale动画淡出(从完全覆盖到透明)对象及其所有子对象。
    形参:
    obj:淡入的对象
    time:动画的持续时间[ms]
    delay:等待动画开始播放[ms]


    bool lv_debug_check_obj_type(constlv_obj_t * obj,constchar * obj_type )
    功能:检查是否有给定类型的对象
    返回:
    true:有效
    形参:
    obj:指向对象的指针
    obj_type:对象的类型。(例如“ lv_btn”)


    bool lv_debug_check_obj_valid(constlv_obj_t * obj )
    功能:检查是否还有任何对象“处于活动状态”以及层次struct 的一部分
    返回:
    true:有效
    形参:
    obj:指向对象的指针
    obj_type:对象的类型。(例如“ lv_btn”)