LVGL9.5版本的基础使用学习

首先下载下来。

使用linux比较简单。

使用

mkdir build

cd build

cmake ..

make

来生成基础的.a

注意该项目故意没有直接给出配置头文件!

所以会编译失败。

这时需要拷贝lv_conf_template.h为需要的配置文件lv_conf.h

这里面的宏需要修改来开启需要的功能。

例如需要开启例子相关的,里面还有更细的demos,需要看哪个还需要勾选:

/** Enable examples to be built with the library. */

#define LV_BUILD_EXAMPLES 1

/** Build the demos */

#define LV_BUILD_DEMOS 1

总之,所有的功能都是需要该配置文件进行处理的。

编译会生成对应的.a文件。

接着直接在主目录进行编写测试程序:

复制代码
//! main.c
#include "lvgl.h"
// Demos (你之前看的):是完整的、大型的应用界面(如整套音乐播放器、性能跑分软件)。Examples (这个文件):是细小的、针对特定功能的教学代码(通常只有 20-50 行)。
#include "demos/lv_demos.h"
#include "examples/lv_examples.h"
static lv_display_t* hal_init(void)
{
  //lv_display_t* disp = NULL;

  /* TODO: init display and indev */
    
	// 1. 创建 SDL 窗口
  // 参数:宽度, 高度
  lv_display_t * disp = lv_sdl_window_create(800, 480);
  
  // 2. 初始化 SDL 鼠标输入(模拟触摸屏)
  lv_sdl_mouse_create();
  
  // 3. (可选) 初始化 SDL 键盘
  lv_sdl_keyboard_create();

  return disp;
}

int main(int argc, char ** argv)
{
  lv_init();

  lv_display_t* disp = hal_init();
  if (disp == NULL) {
    LV_LOG_ERROR("lv_demos initialization failure!");
    return 1;
  }
  
  // 直接可以使用参数如music等查看各个demo
  /*
  if (!lv_demos_create(&argv[1], argc - 1)) {
    lv_demos_show_help();
    goto demo_end;
  }
  */
  
  // example是用于学习更细节的东西的
  //动画,基础,布局等
  //lv_example_anim_1();
  //lv_example_get_started_4();
  //lv_example_grad_1();
  //lv_example_flex_2();
  //lv_example_grid_1();
  
  //lib各种库方便使用
  // 例如gif.需要先开启LV_USE_GIF
  //lv_example_gif_1();
  
  //
  
  //lv_example_scroll_1();
  //lv_example_style_1();
  
  
  //widgets
  //lv_example_canvas_1();
  //lv_example_dropdown_1();
  //lv_example_menu_1();
  //lv_example_msgbox_1();
  //lv_example_table_1();
  //lv_example_tabview_1();
  //lv_example_tileview_1();
  lv_example_win_1();
  
  while (1) {
    uint32_t delay = lv_timer_handler();
    if (delay < 1) delay = 1; /*delay for at least 1 ms*/
    else if(delay == LV_NO_TIMER_READY) delay = LV_DEF_REFR_PERIOD; /*handle LV_NO_TIMER_READY. Another option is to `sleep` for longer*/
    usleep(delay * 1000);
  }

demo_end:
  lv_deinit();
  return 0;
}

这里注意我使用了sdl2来进行快速的应用开发仿真,并没有实际的硬件

编译命令:

gcc -o lvgl_demo sim_main.c -I./ -I./lvgl -L./build/lib -llvgl_demos -llvgl_examples -llvgl_thorvg -llvgl -lSDL2 -lm -lpthread

然后将注释中的demos放开,或者例子来查看。

如demos:

./lvgl_demo music

相关推荐
通信小呆呆2 天前
当算法有了“五感”:多模态数据融合如何向人体感官协同学习?
人工智能·学习·算法·机器学习·机器人
H__Rick2 天前
自动对焦学习-3
人工智能·学习·计算机视觉
Daisy Lee2 天前
量化学习-第1章-什么是量化金融
学习·金融·datawhale
Alsn862 天前
等待学习-学习目录:Docker 容器安全攻防
学习·安全·docker
YM52e2 天前
买菜计算器小应用 - HarmonyOS ArkUI 开发实战-PC版本
学习·华为·harmonyos·鸿蒙·鸿蒙系统
小雨下雨的雨2 天前
HarmonyOS ArkUI训练营入门-组件掌握系列-Animation 动画效果实现-PC版本
学习·华为·harmonyos·鸿蒙
cqbzcsq2 天前
CellFlow虚拟细胞论文阅读
论文阅读·人工智能·笔记·学习·生物信息
YangYang9YangYan2 天前
2026初入职场学习数据分析的价值
学习·数据挖掘·数据分析
guslegend2 天前
理论学习:什么是 Coding Agent?
学习
自传.2 天前
尚硅谷 Vibe Coding|第三章(1) Claude Code深度使用与进阶技巧 学习笔记
笔记·学习·尚硅谷·vibecoding