当前位置: 首页> 文旅> 酒店 > LVGL网格布局测试

LVGL网格布局测试

时间:2025/7/12 5:07:30来源:https://blog.csdn.net/fuhanga123/article/details/139566772 浏览次数:0次

一、测试1

    static lv_coord_t col_dsc[] = { 80, 80, LV_GRID_FR(1), LV_GRID_TEMPLATE_LAST };static lv_coord_t row_dsc[] = { 45, LV_GRID_TEMPLATE_LAST };lv_obj_t* page = lv_img_create(lv_scr_act());lv_obj_center(page);lv_obj_set_size(page, 800, 600);isu_set_obj_default_style(page);lv_obj_t* cont = lv_obj_create(page);lv_obj_set_size(cont, 400, 300);lv_obj_align(cont, LV_ALIGN_LEFT_MID, 0, 0);lv_obj_set_layout(cont, LV_LAYOUT_GRID);lv_obj_set_style_grid_column_dsc_array(cont, col_dsc, 0);lv_obj_set_style_grid_row_dsc_array(cont, row_dsc, 0);for (int i = 0; i < 3; i++){lv_obj_t* label_cont = lv_obj_create(cont);lv_obj_t*label = lv_label_create(label_cont);lv_label_set_text(label, "123");lv_obj_set_grid_cell(label_cont, LV_GRID_ALIGN_START, i, 1, LV_GRID_ALIGN_CENTER, 0, 1);}

二、测试2

    LV_LOG_WARN("layout_test");static lv_coord_t col_dsc[] = { 80, 80, LV_GRID_FR(1), LV_GRID_TEMPLATE_LAST };static lv_coord_t row_dsc[] = { 45, LV_GRID_TEMPLATE_LAST };lv_obj_t* page = lv_img_create(lv_scr_act());lv_obj_center(page);lv_obj_set_size(page, 800, 600);isu_set_obj_default_style(page);lv_obj_t* cont = lv_obj_create(page);lv_obj_set_size(cont, 400, 300);lv_obj_align(cont, LV_ALIGN_LEFT_MID, 0, 0);//设置cont左中对齐lv_obj_set_layout(cont, LV_LAYOUT_GRID);lv_obj_set_style_grid_column_dsc_array(cont, col_dsc, 0);lv_obj_set_style_grid_row_dsc_array(cont, row_dsc, 0);for (int i = 0; i < 3; i++){lv_obj_t* label_cont = lv_obj_create(cont);lv_obj_set_size(label_cont, 80, 45);lv_obj_t* label = lv_label_create(label_cont);lv_obj_center(label);lv_label_set_text(label, "123");if (i == 2){lv_obj_set_grid_cell(label_cont, LV_GRID_ALIGN_END, i, 1, LV_GRID_ALIGN_CENTER, 0, 1);}else {lv_obj_set_grid_cell(label_cont, LV_GRID_ALIGN_START, i, 1, LV_GRID_ALIGN_CENTER, 0, 1);}}

 

1,在不指定cont的style情况下,cont默认是存在padding的,所以label_cont在cont内部的左侧与上边存在空隙。若要消除这种空隙,则需要给cont的pad致0。 

三、测试3

    LV_LOG_WARN("layout_test");static lv_coord_t col_dsc[] = { 80, 80, LV_GRID_FR(1), LV_GRID_TEMPLATE_LAST };static lv_coord_t row_dsc[] = { 45, 45, LV_GRID_TEMPLATE_LAST };static lv_style_t style_control;if (!(style_control.sentinel == LV_STYLE_SENTINEL_VALUE && style_control.prop_cnt > 1)){lv_style_init(&style_control);}else{lv_style_reset(&style_control);}lv_style_set_radius(&style_control, 0);lv_style_set_pad_all(&style_control, 0);lv_style_set_border_width(&style_control, 0);lv_style_set_outline_width(&style_control, 0);lv_style_set_bg_color(&style_control, lv_color_make(256, 128, 64));lv_style_set_bg_opa(&style_control, 50);lv_obj_t* page = lv_img_create(lv_scr_act());lv_obj_center(page);lv_obj_set_size(page, 800, 600);isu_set_obj_default_style(page);lv_obj_t* cont = lv_obj_create(page);lv_obj_add_style(cont, &style_control, LV_PART_MAIN);lv_obj_set_size(cont, 400, 300);lv_obj_align(cont, LV_ALIGN_LEFT_MID, 0, 0);//设置cont左中对齐lv_obj_set_layout(cont, LV_LAYOUT_GRID);lv_obj_set_style_grid_column_dsc_array(cont, col_dsc, 0);lv_obj_set_style_grid_row_dsc_array(cont, row_dsc, 0);for (int j = 0; j < 2; j++){for (int i = 0; i < 3; i++){lv_obj_t* label_cont = lv_obj_create(cont);lv_obj_set_size(label_cont, 100, 45);lv_obj_add_style(label_cont, &style_control, LV_PART_MAIN);lv_obj_t* label = lv_label_create(label_cont);lv_obj_center(label);lv_label_set_text(label, "123");if (i == 2){lv_obj_set_grid_cell(label_cont, LV_GRID_ALIGN_END, i, 1, LV_GRID_ALIGN_CENTER, j, 1);}else {lv_obj_set_grid_cell(label_cont, LV_GRID_ALIGN_START, i, 1, LV_GRID_ALIGN_CENTER, j, 1);}}}

关键字:LVGL网格布局测试

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

责任编辑: