附件文档主要介绍linux下从下载到运行lvgl的流程
1、lvgl创建线条
lv_obj_t* create_line(lv_obj_t *parent)
{
lv_obj_t* obj1 = lv_line_create(parent);
static lv_point_t line_points[] = { {0, 10}, {600, 10} };// 设置起点和终点位置
lv_obj_set_style_line_color(obj1, lv_color_hex(0x9E9E9E), 0); //设置线条的颜色
lv_obj_set_style_line_width(obj1, LV_DPX(2), 0);// 设置线条粗细为2像素
lv_line_set_points(obj1, line_points, sizeof(line_points) / sizeof(lv_point_t));
return obj1;
}
2、lvgl tabview 常用操作
2.1 创建tabview:带标签和按钮
// 创建tabview:tab按钮在顶部,高度为60像素
lv_obj_t * tab_view = lv_tabview_create(objRoot(), LV_DIR_TOP, 60);
// 获取tabbtns对象
lv_obj_t * tab_btns = lv_tabview_get_tab_btns(tab_view);
// 创建标签对象
lv_obj_t * label = lv_label_create(tab_btns);
lv_label_set_text(label, “label”);
// 设置标签对象在tabBtns的左边偏移-LV_HOR_RES / 3 的位置
lv_obj_align(label, LV_ALIGN_LEFT_MID, -LV_HOR_RES / 3, 0);
// 设置tabBtns 左边空白 LV_HOR_RES / 3,用于放置刚创建的label对象
lv_obj_set_style_pad_left(tab_btns, LV_HOR_RES / 3, 0);
// 在tabBtns中添加两个按钮
lv_obj_t * t1 = lv_tabview_add_tab(tab_view, "btn1");
lv_obj_t * t2 = lv_tabview_add_tab(tab_view, "btn2");
3、lvgl 自定义键盘
https://blog.csdn.net/qq_49040163/article/details/133804944
lv_obj_set_style_pad_gap(obj, 2, 0); // 设置按键间隔2像素
lv_obj_set_style_pad_ver(obj, 20, 0); // 设置按键高度20像素
lv_obj_set_content_height(obj, LV_PCT(35)); // 设置键盘高度
4、lvgl 设置按钮样式
4.1(经过此初始化后,后续创建按钮时都会使用这个样式)
styleSet = (ThemeStyleSet*)malloc(sizeof(ThemeStyleSet));
lv_style_t* style = NULL;
//
style = &styleSet->btn;
// 初始化样式
lv_style_init(style);
// 设置背景透明(***透明即看不到,下面设置的宽度和颜色都看不到***)
lv_style_set_bg_opa(style, LV_OPA_TRANSP);
// 设置边沿透明
lv_style_set_border_opa(style, LV_OPA_TRANSP);
// 设置边沿宽度为0
lv_style_set_border_width(style, 0);
// 设置边沿颜色为白色
lv_style_set_border_color(style, lv_color_white());
// 设置背景色为白色
lv_style_set_bg_color(style, lv_color_white());
// 设置半径为10
lv_style_set_radius(style, 10);
// 设置文本字体为30号
lv_style_set_text_font(style, &lv_font_montserrat_30);
// 设置外轮廓(即边框,在边沿外面)宽度为4
lv_style_set_outline_width(style, 4);
// 设置外轮廓透明
lv_style_set_outline_opa(style, LV_OPA_TRANSP);
// 设置阴影透明(因为有的时候按钮添加在按钮上时,可能会有阴影,类似于人影一样)
lv_style_set_shadow_opa(style, LV_OPA_TRANSP);
// 设置文本颜色
lv_style_set_text_color(style, lv_color_black());
4.2 添加圆形按钮
lv_obj_t * btn = lv_btn_create(lv_scr_act());
lv_obj_set_size(btn, 60, 60);
lv_obj_set_style_radius(btn, LV_RADIUS_CIRCLE, 0);
5、lvgl进度条
// 创建进度条对象
lv_obj_t * m_barProgress = lv_bar_create (lv_scr_act());
// 设置宽为100%, 高为16像素
lv_obj_set_size( m_barProgress, LV_PCT(100), 16 );
// 设置进度条当前值为0,进度效果打开
lv_bar_set_value( m_barProgress, 0, LV_ANIM_ON );
// 设置进度条范围:0~100
lv_bar_set_range( m_barProgress, 0, 100 );
// lv_obj_add_flag(m_barProgress, LV_OBJ_FLAG_HIDDEN); // 隐藏进度条
// 设置进度条默认颜色为灰色
lv_obj_set_style_bg_color(m_barProgress, lv_palette_main(LV_PALETTE_GREY), LV_PART_MAIN);
// 设置进度条进度显示颜色为绿色
lv_obj_set_style_bg_color(m_barProgress, lv_palette_main(LV_PALETTE_GREEN), LV_PART_INDICATOR);
6、lvgl创建label并显示省略号
#include "lvgl/lvgl.h"
int main(void) {
// 初始化 LVGL
lv_init();
// 创建屏幕对象
lv_obj_t *screen = lv_scr_act();
// 创建一个容器
lv_obj_t *container = lv_cont_create(screen, NULL);
lv_cont_set_layout(container, LV_LAYOUT_COLUMN_MID);
lv_obj_set_width(container, LV_HOR_RES_MAX);
// 创建一个标签
lv_obj_t *label = lv_label_create(container);
lv_label_set_long_mode(label, LV_LABEL_LONG_DOT);
lv_label_set_text(label, "This is a long text that should be truncated with dots.");
// 设置样式
lv_style_t style;
lv_style_init(&style);
lv_style_set_text_font(&style, LV_STATE_DEFAULT, LV_THEME_DEFAULT_FONT_SMALL);
lv_obj_add_style(label, LV_LABEL_PART_MAIN, &style);
// 设置容器大小
lv_obj_set_size(container, LV_HOR_RES_MAX, LV_VER_RES_MAX);
while (1) {
// 处理 LVGL 事件
lv_task_handler();
lv_tick_inc(5); // 5 ms的时间增量,可以根据实际情况调整
// 可以添加其他主循环中的逻辑
// 在这里添加你的延时函数,以控制循环速率
}
return 0;
}
(注:必须通过lv_obj_set_size 函数设置label大小,如果高度值没有设置的话,label中的内容会自动换行,而不显示省略号)