设备界面设计

## 效果图 ![Snipaste_20220413_145604.png](https://cos.easydoc.net/78425667/files/l1x8aofx.png) ## 容器分区设计 ###### 从上图可看出,主要利用一个容器,里面填充相关参数即可 ## 代码解析 ### 显示区域 ```lua local function makedriver (cont) driverCnt=lvgl.page_create(cont, nil) lvgl.page_set_scrollbar_mode(driverCnt, lvgl.SCRLBAR_MODE_OFF) lvgl.obj_set_size(driverCnt,854, 370) lvgl.page_set_scrl_layout(driverCnt,lvgl.LAYOUT_COLUMN_MID) lvgl.obj_align(driverCnt, nil, lvgl.ALIGN_IN_BOTTOM_MID, 0, 0) lvgl.obj_add_style(driverCnt, lvgl.CONT_PART_MAIN, style.style_bg_page) local function makeUL(cont,title,t) local cc=lvgl.cont_create(cont, nil) lvgl.obj_set_size(cc,854, 150) lvgl.obj_add_style(cc, lvgl.CONT_PART_MAIN, style.style_bg_UL) -- 创建图片控件 local img = lvgl.img_create(cc, nil) -- 设置图片显示的图像 lvgl.img_set_src(img, "/lua/t2.png") -- 图片居中 lvgl.obj_align(img, nil, lvgl.ALIGN_IN_TOP_LEFT, 20, 0) local label=lvgl.label_create(img, nil) lvgl.label_set_recolor(label, true) lvgl.obj_set_style_local_text_font(label, lvgl.LABEL_PART_MAIN, lvgl.STATE_DEFAULT, font22) lvgl.label_set_text(label,"#FFFFFF "..title) lvgl.obj_align(label, nil, lvgl.ALIGN_IN_LEFT_MID, 8, 0) local cnt=lvgl.cont_create(cc, nil) lvgl.obj_set_size(cnt,854, 100) -- lvgl.obj_set_size(cnt,854, 300) lvgl.obj_align(cnt, nil, lvgl.ALIGN_IN_BOTTOM_MID, 0, 0) lvgl.cont_set_layout(cnt, lvgl.LAYOUT_PRETTY_MID) lvgl.obj_add_style(cnt, lvgl.CONT_PART_MAIN, style.style_bg_bg) local item=function(cnt,t) local cont=lvgl.cont_create(cnt, nil) lvgl.obj_set_click(cont,false) lvgl.obj_set_size(cont,250, 100) lvgl.obj_add_style(cont, lvgl.CONT_PART_MAIN, style.style_bg_boder) local img = lvgl.img_create(cont, nil) -- 设置图片显示的图像 lvgl.img_set_src(img, "/lua/"..t.img) -- 图片居中 lvgl.obj_align(img, nil, lvgl.ALIGN_IN_LEFT_MID, 5, -10) local label=lvgl.label_create(cont, nil) lvgl.label_set_recolor(label, true) lvgl.obj_set_style_local_text_font(label, lvgl.LABEL_PART_MAIN, lvgl.STATE_DEFAULT, font18) lvgl.label_set_text(label,"#18aaf2 "..t.text) lvgl.obj_align(label, img, lvgl.ALIGN_OUT_BOTTOM_MID, 0, 0) local l1=lvgl.label_create(cont, nil) lvgl.label_set_recolor(l1, true) lvgl.obj_set_style_local_text_font(l1, lvgl.LABEL_PART_MAIN, lvgl.STATE_DEFAULT, font18) lvgl.label_set_text(l1,"#1470cc "..t.up) lvgl.obj_align(l1, nil, lvgl.ALIGN_IN_LEFT_MID, 70, -15) local l2=lvgl.label_create(cont, nil) lvgl.label_set_recolor(l2, true) lvgl.obj_set_style_local_text_font(l2, lvgl.LABEL_PART_MAIN, lvgl.STATE_DEFAULT, font18) lvgl.label_set_text(l2,"#1470cc "..t.down) lvgl.obj_align(l2, nil, lvgl.ALIGN_IN_LEFT_MID, 70, 15) local dw1=lvgl.label_create(cont, nil) lvgl.label_set_recolor(dw1, true) lvgl.obj_set_style_local_text_font(dw1, lvgl.LABEL_PART_MAIN, lvgl.STATE_DEFAULT, font18) lvgl.label_set_text(dw1,"#1470cc "..t.dw1) lvgl.obj_align(dw1, nil, lvgl.ALIGN_IN_RIGHT_MID, -15, -15) local dw2=lvgl.label_create(cont, nil) lvgl.label_set_recolor(dw2, true) lvgl.obj_set_style_local_text_font(dw2, lvgl.LABEL_PART_MAIN, lvgl.STATE_DEFAULT, font18) lvgl.label_set_text(dw2,"#1470cc "..t.dw2) lvgl.obj_align(dw2, nil, lvgl.ALIGN_IN_RIGHT_MID, -15, 15) local p1=lvgl.label_create(cont, nil) lvgl.label_set_recolor(p1, true) lvgl.obj_set_style_local_text_font(p1, lvgl.LABEL_PART_MAIN, lvgl.STATE_DEFAULT, font22) lvgl.label_set_text(p1,"#75bc4d "..t.p1) lvgl.obj_align(p1,dw1, lvgl.ALIGN_OUT_LEFT_MID, -5, 0) local p2=lvgl.label_create(cont, nil) lvgl.label_set_recolor(p2, true) lvgl.obj_set_style_local_text_font(p2, lvgl.LABEL_PART_MAIN, lvgl.STATE_DEFAULT, font22) lvgl.label_set_text(p2,"#75bc4d "..t.p2) lvgl.obj_align(p2,dw2, lvgl.ALIGN_OUT_LEFT_MID, -5, 0) end for _, v in ipairs(t) do item(cnt,v) end end local t1={ { img="battery_jump.png", text="电池组", up="单体个数", down="单体电压", p1="16", p2="3.33", dw1="个", dw2="V", }, { img="battery_jump.png", text="电池组", up="单体个数", down="单体电压", p1="16", p2="3.33", dw1="个", dw2="V", }, { img="battery_jump.png", text="电池组", up="单体个数", down="单体电压", p1="16", p2="3.33", dw1="个", dw2="V", } } makeUL(driverCnt,"动力设备",t1) --模拟添加 makeUL(driverCnt,"环境设备",t1) end ```