首先下载下来。
使用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