基础对象(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
的父级。第三个参数是对齐方式的类型。这些是可能的选项:
对齐类型的构建类似于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/y
和 lv_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_MAIN
或 LV_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 禁用此功能
范例¶
具有自定义样式的基础对象¶
上述效果的示例代码:
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”)