LVGL使用入门

附件文档主要介绍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中的内容会自动换行,而不显示省略号)

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值