LVGL 基础对象

基础对象(lv_obj), LVGL 基础对象 – 概述

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

  • 座标
  • 父对象
  • 子对象
  • 主要风格
  • 属性,例如点击启用、拖动启用等。

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

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

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



LVGL 基础对象 – 坐标

尺寸

可以使用 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 。例如:

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部分。

保护

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

  • 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 禁用此功能

事件

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

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

按键

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

进一步了解 按键 。

范例

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

LVGL基础对象

lvgl中基础对象演示

上述效果的示例代码:

#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

    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

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

函数

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”)
赞(3)
未经允许不得转载:极客笔记 » LVGL 基础对象
分享到: 更多 (0)

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址