lv_obj_set_style和lv_style_set的区别
时间: 2023-07-17 10:58:53 浏览: 104
lv_obj_set_style和lv_style_set都是用于设置对象的式,但有一些区别:
1.不同:lv_obj_set_style接受两个参数第一个参数是要设置样式的对象,第二个参数是要应用的式。lv_style_set接受两个参数,一个参数是要设置的样式,第二个参数是样式属性和值。
2. 用范围不同:lv_obj_set_style作用于整个对象,会将指定的样式应用于对象及其子对象。而lv_style_set仅作用于指定的样式,通常用于创建或修改样式。
3. 使用方式不同:lv_obj_set_style可以直接将样式应用到对象,而lv_style_set需要在创建或修改式后,使用lv_obj_add_style将样式附加到对象上。
总结来说,lv_obj_set_style用于在运行时将样式应用于对象及其子对象,而lv_style_set用于创建或修改样式,然后使用lv_obj_add_style将样式附加到对象上。
相关问题
lv_obj_set_event_cb与lv_obj_add_event_cb有什么区别
lv_obj_set_event_cb 和 lv_obj_add_event_cb 是 LittlevGL 图形库中用于设置对象事件回调函数的两个函数。
区别如下:
1. 参数类型不同:lv_obj_set_event_cb 接受一个对象指针和一个事件回调函数指针作为参数,而 lv_obj_add_event_cb 接受一个对象指针、一个事件类型和一个事件回调函数指针作为参数。
2. 功能不同:lv_obj_set_event_cb 用于设置对象的默认事件回调函数,该回调函数将在对象接收到任何事件时被调用。而 lv_obj_add_event_cb 用于添加特定事件类型的回调函数,可以为对象添加多个不同类型的事件回调函数。
3. 使用方式不同:lv_obj_set_event_cb 只需调用一次,设置对象的默认事件回调函数。而 lv_obj_add_event_cb 可以多次调用,为对象添加多个不同类型的事件回调函数。
总结来说,lv_obj_set_event_cb 设置对象的默认事件回调函数,而 lv_obj_add_event_cb 则是为对象添加特定类型的事件回调函数。
void lv_obj_set_angle(lv_obj_t * obj, lv_coord_t angle)函数的源代码
以下是 `lv_obj_set_angle` 函数的源代码:
```c
void lv_obj_set_angle(lv_obj_t * obj, lv_coord_t angle)
{
if(obj->angle == angle) return;
lv_style_int_t old_top = obj->coords.y1;
lv_style_int_t old_left = obj->coords.x1;
obj->angle = angle;
lv_style_int_t new_top = obj->coords.y1;
lv_style_int_t new_left = obj->coords.x1;
if(old_top != new_top || old_left != new_left) {
lv_obj_invalidate(obj);
}
}
```
`lv_obj_set_angle` 函数用于设置对象的旋转角度。它接受两个参数:第一个参数是要设置角度的对象,第二个参数是要设置的角度值。该函数首先检查对象的当前角度是否与新角度相同,如果相同则不执行任何操作。否则,它会将对象的角度设置为新角度,并检查对象的位置是否发生了变化。如果位置发生了变化,则使对象失效并需要重新绘制。
阅读全文