位置
lv_obj_set_x函数
此函数用于设置 GUI 对象的 X 坐标(即水平位置)。- void lv_obj_set_x(lv_obj_t * obj, lv_coord_t x);
- //obj:指向要设置位置的对象的指针
- //x:对象的新 X 坐标值。这个值是相对于对象父级的坐标系的。
复制代码 lv_obj_set_y函数
此函数用于设置 GUI 对象的 y坐标(即垂直位置)。- void lv_obj_set_y(lv_obj_t * obj, lv_coord_t y);
- //obj:指向要设置位置的对象的指针
- //y:对象的新 y 坐标值。这个值是相对于对象父级的坐标系的。
复制代码 lv_obj_set_pos函数
此函数用于同时设置对象的 X 和 Y 坐标- void lv_obj_set_pos(lv_obj_t * obj, lv_coord_t x, lv_coord_t y);
- //obj:指向要设置位置的对象的指针
- //x:对象的新 x 坐标值。这个值是相对于对象父级的坐标系的。
- //y:对象的新 y 坐标值
复制代码 lv_pct宏
用于表示百分比的一个宏。它通常用于设置对象的大小或位置时,以百分比的形式相对于父容器的尺寸来指定值- #define lv_pct(x) ((x) * LV_PCT(1))
- //x:将输入值 x 转换为相对于父容器的百分比值
复制代码 lv_obj_set_align函数
用于将对象相对于其父容器或其他对象进行对齐- void lv_obj_set_align(lv_obj_t * obj, lv_align_t align);
- //obj:指向要设置对齐方式的对象的指针
- //align:对齐方式
- /*
- LV_ALIGN_TOP_LEFT:对齐到父容器的左上角。
- LV_ALIGN_TOP_MID:对齐到父容器的顶部中央。
- LV_ALIGN_TOP_RIGHT:对齐到父容器的右上角。
- LV_ALIGN_BOTTOM_LEFT:对齐到父容器的左下角。
- LV_ALIGN_BOTTOM_MID:对齐到父容器的底部中央。
- LV_ALIGN_BOTTOM_RIGHT:对齐到父容器的右下角。
- LV_ALIGN_LEFT_MID:对齐到父容器的左侧中央。
- LV_ALIGN_RIGHT_MID:对齐到父容器的右侧中央。
- LV_ALIGN_CENTER:对齐到父容器的中心。
- */
复制代码 lv_obj_center函数
用于将对象居中对齐到其父容器的中心,实现对象的居中对齐- void lv_obj_center(lv_obj_t * obj);
- //obj:指向要居中对齐的对象的指针。
复制代码 lv_obj_align函数
用于将对象相对于其父容器或其他对象进行对齐- void lv_obj_align(lv_obj_t * obj, lv_align_t align, lv_coord_t x_mod, lv_coord_t y_mod);
- //obj:指向要设置对齐方式的对象的指针
- //align:对齐方式
- //x_mod:在对齐后,对象的 X 坐标偏移量
- //y_mod:在对齐后,对象的 Y 坐标偏移量
复制代码 lv_obj_align_to函数
用于将一个对象相对于另一个对象进行对齐- void lv_obj_align_to(lv_obj_t * obj_to_align, const lv_obj_t * base, lv_align_t align, lv_coord_t x_ofs, lv_coord_t y_ofs);
- //obj_to_align:要进行对齐的对象的指针
- //base:作为对齐基准的对象的指针
- //align:对齐方式
- //x_ofs:对齐后在 X 轴方向上的偏移量
- //y_ofs:对齐后在 Y 轴方向上的偏移量
- /*
- LV_ALIGN_OUT_TOP_LEFT //将对象对齐到父容器的左上角外部。对象的右下角与父容器的左上角对齐。
- LV_ALIGN_OUT_TOP_MID //将对象对齐到父容器的顶部中央外部。对象的底部中央与父容器的顶部中央对齐。
- LV_ALIGN_OUT_TOP_RIGHT //将对象对齐到父容器的右上角外部。对象的左下角与父容器的右上角对齐。
- LV_ALIGN_OUT_BOTTOM_LEFT //将对象对齐到父容器的左下角外部。对象的右上角与父容器的左下角对齐。
- LV_ALIGN_OUT_BOTTOM_MID //将对象对齐到父容器的底部中央外部。对象的顶部中央与父容器的底部中央对齐。
- LV_ALIGN_OUT_BOTTOM_RIGHT//将对象对齐到父容器的右下角外部。对象的左上角与父容器的右下角对齐。
- LV_ALIGN_OUT_LEFT_TOP //将对象对齐到父容器的左上角外部。对象的右下角与父容器的左上角对齐(与 LV_ALIGN_OUT_TOP_LEFT 相同)。
- LV_ALIGN_OUT_LEFT_MID//将对象对齐到父容器的左侧中央外部。对象的右中央与父容器的左中央对齐。
- LV_ALIGN_OUT_LEFT_BOTTOM//将对象对齐到父容器的左下角外部。对象的右上角与父容器的左下角对齐。
- LV_ALIGN_OUT_RIGHT_TOP//将对象对齐到父容器的右上角外部。对象的左下角与父容器的右上角对齐(与 LV_ALIGN_OUT_TOP_RIGHT 相同)。
- LV_ALIGN_OUT_RIGHT_MID//将对象对齐到父容器的右侧中央外部。对象的左中央与父容器的右中央对齐。
- LV_ALIGN_OUT_RIGHT_BOTTOM//将对象对齐到父容器的右下角外部。对象的左上角与父容器的右下角对齐(与 LV_ALIGN_OUT_BOTTOM_RIGHT 相同)。
- */
复制代码 大小
lv_obj_set_width函数
用于设置对象的宽度- void lv_obj_set_width(lv_obj_t * obj, lv_coord_t width);
- //obj:指向要设置宽度的对象的指针。
- //width:要设置的新宽度值,以像素为单位。
复制代码 lv_obj_set_height函数
用于设置对象的高度。- void lv_obj_set_height(lv_obj_t * obj, lv_coord_t height);
- //obj:指向要设置高度的对象的指针。
- //height:要设置的新高度值,以像素为单位。
复制代码 lv_obj_set_size函数
用于同时设置对象的宽度和高度- void lv_obj_set_size(lv_obj_t * obj, lv_coord_t w, lv_coord_t h);
- //obj:指向要设置尺寸的对象的指针。
- //w:要设置的新宽度值,以像素为单位
- //h:要设置的新高度值,以像素为单位
复制代码 lv_obj_set_content_width 函数
用于设置对象内容区域宽度的函数,而非总宽度- void lv_obj_set_content_width(lv_obj_t * obj, lv_coord_t w);
- //obj:要设置的对象指针
- //w:新的内容区域宽度(像素值)
复制代码 lv_obj_set_content_height函数
用于设置对象内容区域高度的函数,而非总高度- void lv_obj_set_content_height(lv_obj_t * obj, lv_coord_t h);
- //obj:要设置的对象指针
- //h:新的内容区域高度(像素值)
复制代码 lv_obj_get_width函数
用于获取对象的当前宽度- lv_coord_t lv_obj_get_width(const lv_obj_t * obj);
- //obj:指向要获取宽度的对象的指针
- //ret:返回对象的当前宽度,以像素为单位
复制代码 lv_obj_get_height函数
用于获取对象的当前高度- lv_coord_t lv_obj_get_height(const lv_obj_t * obj);
- //obj:指向要获取宽度的对象的指针
- //ret:返回对象的当前高度,以像素为单位
复制代码 lv_obj_get_content_width函数
用于获取对象的内容区域宽度- lv_coord_t lv_obj_get_content_width(const lv_obj_t * obj);
- //obj:指向要获取内容区域宽度的对象的指针
- //ret:返回对象的内容区域宽度
复制代码 lv_obj_get_content_height函数
用于获取对象的内容区域高度- lv_coord_t lv_obj_get_content_height(const lv_obj_t * obj);
- //obj:指向要获取内容区域高度的对象的指针
- //ret:返回对象的内容区域高度
复制代码
lv_obj_update_layout函数
用于强制更新对象的布局。这个函数通常在手动调整对象或其子对象的大小、位置或属性后调用- void lv_obj_update_layout(lv_obj_t * obj);
- //obj:指向要更新布局的对象的指针。
复制代码 样式
lv_style_init函数
用于初始化一个新的样式,通过样式可以统一设置多个对象的属性,如颜色、边框、背景、字体等。- static lv_style_t style;
- void lv_style_init(lv_style_t * style);
- //style:指向要初始化的样式结构的指针。
复制代码 lv_style_set_width函数
用于设置样式的宽度属性- void lv_style_set_width(lv_style_t * style, lv_state_t state, lv_coord_t width);
- //style:指向要设置宽度的样式结构的指针
- //state:指定样式的状态 LV_STATE_DEFAULT LV_STATE_FOCUSED LV_STATE_PRESSED LV_STATE_CHECKED 等
- //width:要设置的宽度值,以像素为单位。
复制代码 lv_style_set_y函数
用于设置样式的 Y 偏移量- void lv_style_set_y(lv_style_t * style, lv_state_t state, lv_coord_t y);
- //style:指向要设置 Y 偏移量的样式结构的指针
- //state:指定样式的状态 可以省略
- //y:要设置的 Y 偏移量
复制代码 lv_obj_add_style函数
用于将一个样式(lv_style_t)应用到对象上- void lv_obj_add_style(lv_obj_t * obj, const lv_style_t * style, lv_part_t part);
- //obj:指向要应用样式的对象的指针。
- //style:指向要应用的样式结构的指针。
- //part:指定样式的部分 LV_PART_MAIN LV_PART_FOCUSED LV_PART_PRESSED LV_PART_CHECKED
复制代码 lv_style_set_translate_y函数
用于设置样式的垂直平移量。这个函数允许你在不改变对象大小和位置的情况下,将对象在垂直方向上平移一定的距离- void lv_style_set_translate_y(lv_style_t * style, lv_coord_t value);
- //style:指向要设置垂直平移量的样式结构的指针
- //value:要设置的垂直平移量,以像素为单位。正值表示向下平移,负值表示向上平移
复制代码 lv_style_set_translate_x函数
用于设置样式的水平平移量。这个函数允许你在不改变对象大小和位置的情况下,将对象在水平方向上平移一定的距离。- void lv_style_set_translate_x(lv_style_t * style, lv_state_t state, lv_coord_t x);
- //style:指向要设置水平平移量的样式结构的指针
- //state:指定样式的状态
- //x:要设置的水平平移量,以像素为单位。正值表示向右平移,负值表示向左平移
复制代码 lv_style_set_height函数
用于设置样式的高度属性- void lv_style_set_height(lv_style_t * style, lv_state_t state, lv_coord_t height);
- //style:指向要设置高度的样式结构的指针
- //state:指定样式的状态
- //height:要设置的高度值,以像素为单位
复制代码 lv_style_set_width函数
用于设置样式的宽度属性- void lv_style_set_width(lv_style_t * style, lv_state_t state, lv_coord_t width);
- //style:指向要设置宽度的样式结构的指针。
- //state:指定样式的状态
- //width:要设置的宽度值,以像素为单位
复制代码 lv_style_set_size函数
用于同时设置样式的宽度和高度属性- void lv_style_set_size(lv_style_t * style, lv_state_t state, lv_coord_t size);
- //style:指向要设置大小的样式结构的指针
- //state:指定样式的状态
- //size:要设置的宽度和高度值
复制代码 lv_obj_remove_style函数
用于从对象中移除一个样式- void lv_obj_remove_style(lv_obj_t * obj, const lv_style_t * style, lv_part_t part);
- //obj:指向要移除样式的对象的指针。
- //style:指向要移除的样式结构的指针
- //part:指定样式的部分
复制代码 lv_style_set_bg_color函数
设置样式的背景颜色- void lv_style_set_bg_color(lv_style_t * style, lv_color_t color);
- //style:指向要设置背景颜色的样式结构的指针
- //color:要设置的背景颜色
复制代码 lv_style_set_border_width函数
设置样式的边框宽度- void lv_style_set_border_width(lv_style_t * style, lv_coord_t width);
- //style:指向要设置边框宽度的样式结构的指针
- //width:要设置的边框宽度
复制代码 lv_style_set_radius函数
设置样式的圆角半径- void lv_style_set_radius(lv_style_t * style, lv_state_t state, lv_coord_t radius);
- //style:指向要设置圆角半径的样式结构的指针
- //state:指定样式的状态
- //radius:要设置的圆角半径,以像素为单位
复制代码 lv_style_set_transform_width函数
用于设置样式的变换宽度- void lv_style_set_transform_width(lv_style_t * style, lv_state_t state, lv_coord_t value);
- //style:指向要设置变换宽度的样式结构的指针
- //state:指定样式的状态
- //value:要设置的变换宽度值,以像素为单位。正值表示对象在两侧变得更宽,负值表示对象在两侧变得更窄
复制代码 lv_style_set_transform_height函数
用于设置样式的变换高度- void lv_style_set_transform_height(lv_style_t * style, lv_state_t state, lv_coord_t value);
- //style:指向要设置变换高度的样式结构的指针
- //state:指定样式的状态
- //value:要设置的变换高度值,以像素为单位。正值表示对象在上下方向上更高,负值表示对象在上下方向上更矮。
复制代码 lv_obj_add_flag函数
函数用于为对象添加一个标志- void lv_obj_add_flag(lv_obj_t * obj, lv_obj_flag_t flag);
- //obj:指向要添加标志的对象的指针
- //flag:要添加的标志 可以通过位运算符 | 组合多个标志
- /*
- LV_OBJ_FLAG_HIDDEN:隐藏对象,使其在布局计算中被忽略。
- LV_OBJ_FLAG_CLICKABLE:使对象可点击。
- LV_OBJ_FLAG_CHECKABLE:使对象可选中(例如复选框)。
- LV_OBJ_FLAG_SCROLLABLE:使对象可滚动
- */
复制代码 lv_obj_clear_flag函数
函数用于清除对象的一个标志- void lv_obj_clear_flag(lv_obj_t * obj, lv_obj_flag_t flag);
- //obj:指向要清除标志的对象的指针
- //flag:要清除的标志
复制代码 lv_layout_register函数
用于注册一个新的自定义布局,可以定义自己的布局逻辑,并将其应用到对象上- uint32_t lv_layout_register(lv_layout_update_cb_t cb, void * user_data);
- //cb:布局更新回调函数的指针。这个函数将在需要重新定位或调整对象的子对象时被调用。
- //user_data:自定义数据,将传递给回调函数
- //ret:返回新布局的 ID
复制代码- #include "lvgl.h"
- // 自定义布局更新回调函数
- void my_layout_update(lv_obj_t * obj, void * user_data) {
- // 在这里实现你的布局逻辑
- // 例如,重新定位或调整子对象的大小
- }
- void example_custom_layout() {
- // 注册自定义布局
- uint32_t MY_LAYOUT = lv_layout_register(my_layout_update, NULL);
- // 创建一个容器并应用自定义布局
- lv_obj_t * container = lv_obj_create(lv_scr_act());
- lv_obj_set_size(container, 300, 200);
- lv_obj_set_layout(container, MY_LAYOUT); // 应用自定义布局
- }
复制代码 lv_style_set_prop_meta函数
用于为样式中的特定属性设置元数据。元数据可以用于控制属性的继承或默认值等特殊行为- void lv_style_set_prop_meta(lv_style_t * style, lv_style_prop_t prop, uint16_t meta);
- //style:指向要设置属性元数据的样式结构的指针。
- //prop:要设置元数据的属性 ID,例如 LV_STYLE_BG_COLOR。
- //meta:要设置的元数据值,可以是以下值之一:
- //LV_STYLE_PROP_META_INHERIT:强制子对象继承父对象的值。
- //LV_STYLE_PROP_META_INITIAL:强制使用属性的默认值。
复制代码- #include "lvgl.h"
- void example_style_prop_meta() {
- // 创建一个样式
- static lv_style_t style;
- lv_style_init(&style);
- // 设置背景颜色的元数据为继承
- lv_style_set_prop_meta(&style, LV_STYLE_BG_COLOR, LV_STYLE_PROP_META_INHERIT);
- // 设置背景颜色的值
- lv_style_set_bg_color(&style, LV_STATE_DEFAULT, lv_color_hex(0xCCCCCC));
- // 创建一个对象并应用样式
- lv_obj_t * obj = lv_obj_create(lv_scr_act());
- lv_obj_add_style(obj, &style, LV_PART_MAIN);
- }
复制代码 lv_style_set_bg_color函数
设置特定状态下的对象设置背景颜色。- void lv_style_set_bg_color(lv_style_t * style, lv_color_t color);
- //style:指向要设置背景颜色的样式结构的指针
- //color:要设置的背景颜色,类型为 lv_color_t
复制代码 lv_color_hex宏
用于将十六进制颜色值转换为 lv_color_t 类型- lv_style_set_bg_color(style, LV_STATE_DEFAULT, lv_color_hex32(0x80FF0000)); // 半透明红色
- #define lv_color_hex(color) ((lv_color_t) { .full = (color) })
复制代码- #include "lvgl.h"
- void example_color_hex() {
- // 创建一个样式
- static lv_style_t style_btn;
- lv_style_init(&style_btn);
- // 使用 lv_color_hex 设置默认状态的背景颜色为灰色
- lv_style_set_bg_color(&style_btn, LV_STATE_DEFAULT, lv_color_hex(0xCCCCCC));
- // 使用 lv_color_hex 设置按下状态的背景颜色为深灰色
- lv_style_set_bg_color(&style_btn, LV_STATE_PRESSED, lv_color_hex(0x888888));
- // 创建一个按钮
- lv_obj_t * btn = lv_btn_create(lv_scr_act());
- lv_obj_set_size(btn, 100, 50); // 设置按钮的大小为 100x50 像素
- lv_obj_align(btn, LV_ALIGN_CENTER, 0, 0); // 将按钮居中对齐到屏幕中心
- // 将样式应用到按钮上
- lv_obj_add_style(btn, &style_btn, LV_PART_MAIN);
- // 创建一个标签并添加到按钮上
- lv_obj_t * label = lv_label_create(btn);
- lv_label_set_text(label, "按钮");
- lv_obj_center(label); // 将标签居中显示在按钮上
- }
复制代码 lv_style_set_bg_opa函数
用于设置小部件背景的透明度- void lv_style_set_bg_opa(lv_style_t * style, lv_opa_t opa);
- //style:指向 lv_style_t 类型的指针,表示要设置样式的对象
- //opa:透明度值,范围从 0 到 255
- //0 或 LV_OPA_0 或 LV_OPA_TRANSP 表示完全透明
- //255 或 LV_OPA_100 或 LV_OPA_COVER 表示完全不透明
复制代码 lv_style_set_border_width函数
用于设置小部件边框的宽度- void lv_style_set_border_width(lv_style_t * style, uint8_t width);
- //style:指向 lv_style_t 类型的指针,表示要设置样式的对象
- //width:边框的宽度
复制代码 lv_style_set_border_color函数
用于设置小部件边框的颜色- void lv_style_set_border_color(lv_style_t * style, lv_color_t color);
- //style:指向 lv_style_t 类型的指针,表示要设置样式的对象。
- //color:边框的颜色,类型为 lv_color_t。可以通过 lv_color_hex
复制代码 来源:程序园用户自行投稿发布,如果侵权,请联系站长删除
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作! |