littleVGL总结
文章目录
- 1.lv_slider
- 2.lv_style
- 3.按钮
- 例子1
- 例子2
- 4.label
- 5.例子
1.lv_slider
void lv_ex_get_started_3(void)
{/* 创建一个滑块 */lv_obj_t * slider = lv_slider_create(lv_scr_act(), NULL);lv_obj_set_width(slider, 200); /*Set the width*/lv_obj_align(slider, NULL, LV_ALIGN_CENTER, 0, 0); /*Align to the center of the parent (screen)*/lv_obj_set_event_cb(slider, slider_event_cb); /*slider_event_cb 是回调函数*//* 创建一个文本 */label = lv_label_create(lv_scr_act(), NULL);lv_label_set_text(label, "0");lv_obj_set_auto_realign(slider, true); /*To keep center alignment when the width of the text changes*/lv_obj_align(label, slider, LV_ALIGN_OUT_BOTTOM_MID, 0, 20); /*Align below the slider*/
}/*回调函数*/
static void slider_event_cb(lv_obj_t * slider, lv_event_t event)
{if(event == LV_EVENT_VALUE_CHANGED) {/*Refresh the text*/lv_label_set_text_fmt(label, "%d", lv_slider_get_value(slider));}
}
另外 lv_slider_set_value(slider, 70, LV_ANIM_OFF); 可以设置滑块默认的值
2.lv_style
void lv_ex_style_10(void)
{static lv_style_t style;lv_style_init(&style);/*Set a background color and a radius*/lv_style_set_radius(&style, LV_STATE_DEFAULT, 5); //圆角是5 ;对象状态是默认的LV_STATE_DEFAULTlv_style_set_bg_opa(&style, LV_STATE_DEFAULT, LV_OPA_COVER); //对象状态是默认的LV_STATE_DEFAULT;lv_style_set_bg_color(&style, LV_STATE_DEFAULT, LV_COLOR_SILVER);//颜色/*按下时 颜色改变*/lv_style_set_bg_color(&style, LV_STATE_PRESSED, LV_COLOR_GRAY);//对象状态是 LV_STATE_PRESSED;当这个状态时 ,颜色变成GRAY/*Set different transition time in default and pressed state*fast press, slower revert to default*//*译文:不同模式下切换状态的时间长短 */lv_style_set_transition_time(&style, LV_STATE_DEFAULT, 500);lv_style_set_transition_time(&style, LV_STATE_PRESSED, 200);/*Small delay to make transition more visible*/// lv_style_set_transition_delay(&style, LV_STATE_DEFAULT, 100);/*Add `bg_color` to transitioned properties*/lv_style_set_transition_prop_1(&style, LV_STATE_DEFAULT, LV_STYLE_BG_COLOR);/*Create an object with the new style*/lv_obj_t * obj = lv_obj_create(lv_scr_act(), NULL);lv_obj_add_style(obj, LV_BTN_PART_MAIN, &style);lv_obj_align(obj, NULL, LV_ALIGN_IN_TOP_LEFT, 0, 0);
}
3.按钮
例子1
void lv_ex_get_started_1(void)
{
//创建一个按钮lv_obj_t * btn = lv_btn_create(lv_scr_act(), NULL); /*Add a button the current screen*/lv_obj_set_pos(btn, 10, 10); /*Set its position*/lv_obj_set_size(btn, 120, 50); /*Set its size*/lv_obj_set_event_cb(btn, btn_event_cb); /*回调函数btn_event_cb*/
//创建一个文本lv_obj_t * label = lv_label_create(btn, NULL); /*Add a label to the button*/lv_label_set_text(label, "Button"); /*Set the labels text*/
}//这是按钮的 回调函数
static void btn_event_cb(lv_obj_t * btn, lv_event_t event)
{if(event == LV_EVENT_CLICKED) {static uint8_t cnt = 0;cnt++;/*Get the first child of the button which is the label and change its text*/lv_obj_t * label = lv_obj_get_child(btn, NULL);lv_label_set_text_fmt(label, "Button: %d", cnt);}
}
例子2
4.label
lv_obj_t *label = lv_label_create(lv_scr_act(),NULL);lv_label_set_text_fmt(label, "%d", 28); // 显示数字
lv_obj_align(label, NULL, LV_ALIGN_CENTER, 0, 0);//中间对齐
5.例子
void lv_ex_get_started_2(void)
{static lv_style_t style_btn;static lv_style_t style_btn_red;/*Create a simple button style*/lv_style_init(&style_btn);lv_style_set_radius(&style_btn, LV_STATE_DEFAULT, 10);lv_style_set_bg_opa(&style_btn, LV_STATE_DEFAULT, LV_OPA_COVER);lv_style_set_bg_color(&style_btn, LV_STATE_DEFAULT, LV_COLOR_SILVER);lv_style_set_bg_grad_color(&style_btn, LV_STATE_DEFAULT, LV_COLOR_GRAY);lv_style_set_bg_grad_dir(&style_btn, LV_STATE_DEFAULT, LV_GRAD_DIR_VER);/*Swap the colors in pressed state*/lv_style_set_bg_color(&style_btn, LV_STATE_PRESSED, LV_COLOR_GRAY);lv_style_set_bg_grad_color(&style_btn, LV_STATE_PRESSED, LV_COLOR_SILVER);/*Add a border*/lv_style_set_border_color(&style_btn, LV_STATE_DEFAULT, LV_COLOR_WHITE);lv_style_set_border_opa(&style_btn, LV_STATE_DEFAULT, LV_OPA_70);lv_style_set_border_width(&style_btn, LV_STATE_DEFAULT, 2);/*Different border color in focused state*/lv_style_set_border_color(&style_btn, LV_STATE_FOCUSED, LV_COLOR_BLUE);lv_style_set_border_color(&style_btn, LV_STATE_FOCUSED | LV_STATE_PRESSED, LV_COLOR_NAVY);/*Set the text style*/lv_style_set_text_color(&style_btn, LV_STATE_DEFAULT, LV_COLOR_WHITE);/*Make the button smaller when pressed*/lv_style_set_transform_height(&style_btn, LV_STATE_PRESSED, -5);lv_style_set_transform_width(&style_btn, LV_STATE_PRESSED, -10);
#if LV_USE_ANIMATION/*Add a transition to the size change*/static lv_anim_path_t path;lv_anim_path_init(&path);lv_anim_path_set_cb(&path, lv_anim_path_overshoot);lv_style_set_transition_prop_1(&style_btn, LV_STATE_DEFAULT, LV_STYLE_TRANSFORM_HEIGHT);lv_style_set_transition_prop_2(&style_btn, LV_STATE_DEFAULT, LV_STYLE_TRANSFORM_WIDTH);lv_style_set_transition_time(&style_btn, LV_STATE_DEFAULT, 300);lv_style_set_transition_path(&style_btn, LV_STATE_DEFAULT, &path);
#endif/*Create a red style. Change only some colors.*/lv_style_init(&style_btn_red);lv_style_set_bg_color(&style_btn_red, LV_STATE_DEFAULT, LV_COLOR_RED);lv_style_set_bg_grad_color(&style_btn_red, LV_STATE_DEFAULT, LV_COLOR_MAROON);lv_style_set_bg_color(&style_btn_red, LV_STATE_PRESSED, LV_COLOR_MAROON);lv_style_set_bg_grad_color(&style_btn_red, LV_STATE_PRESSED, LV_COLOR_RED);lv_style_set_text_color(&style_btn_red, LV_STATE_DEFAULT, LV_COLOR_WHITE);
#if LV_USE_BTN/*Create buttons and use the new styles*/lv_obj_t * btn = lv_btn_create(lv_scr_act(), NULL); /*Add a button the current screen*/lv_obj_set_pos(btn, 10, 10); /*Set its position*/lv_obj_set_size(btn, 120, 50); /*Set its size*/lv_obj_reset_style_list(btn, LV_BTN_PART_MAIN); /*Remove the styles coming from the theme*/lv_obj_add_style(btn, LV_BTN_PART_MAIN, &style_btn);lv_obj_t * label = lv_label_create(btn, NULL); /*Add a label to the button*/lv_label_set_text(label, "Button"); /*Set the labels text*//*Create a new button*/lv_obj_t * btn2 = lv_btn_create(lv_scr_act(), btn);lv_obj_set_pos(btn2, 10, 80);lv_obj_set_size(btn2, 120, 50); /*Set its size*/lv_obj_reset_style_list(btn2, LV_BTN_PART_MAIN); /*Remove the styles coming from the theme*/lv_obj_add_style(btn2, LV_BTN_PART_MAIN, &style_btn);lv_obj_add_style(btn2, LV_BTN_PART_MAIN, &style_btn_red); /*Add the red style on top of the current */lv_obj_set_style_local_radius(btn2, LV_BTN_PART_MAIN, LV_STATE_DEFAULT, LV_RADIUS_CIRCLE); /*Add a local style*/label = lv_label_create(btn2, NULL); /*Add a label to the button*/lv_label_set_text(label, "Button 2"); /*Set the labels text*/
#endif
}
littleVGL总结相关推荐
- littlevgl抗锯齿_「VGL」littlevGL:字体与汉字 - seo实验室
VGL 使用各种嵌入式GUI时,总会遇到"汉字显示""字体"这些关卡. 阅读本文前,最好已经了解Uincode,UTF-8,UTF-16,GBK,gb2312相 ...
- 【LittlevGL】模拟器
LittlevGL提供的模拟器有很多种: 我使用的是VS版本的模拟器进行测试,github主页:https://github.com/littlevgl/pc_simulator_sdl_visual ...
- Luat 功能开发教程(十六) LittleVGL
目录 LittleVGL 简介 控件API说明 实现流程 示例 image控件 Canvas控件 button控件 Arc控件(加载器) page控件 label控件 Slider控件 switch控 ...
- 【LittleVGL】Windows环境下利用CodeBlocks搭建LittleVGL的PC模拟器环境配置问题
本章目的: 1.在学习使用LittleVGL构架搭建GUI图形界面时,使用CodeBlocks IDE集成开发环境来配置和测试GUI系统. 2.解决在搭建LittleVGL环境时遇到的问题 ...
- ubuntu18.04 littlevgl运行环境搭建
1.下载代码: $git clone https://gitclone.com/github.com/littlevgl/pc_simulator.git $cd pc_simulator $git ...
- littleVGL学习笔记8——lv_cont 容器
1. 介绍 所谓的容器就是一个载体,用来装东西的,在 littleVGL 中,可以用来存放各种各样的子对象,当子对象的数量越来越多时,子对象们在父容器中的排列方式就显得尤为重要,因此lv_cont ...
- ESP32 开发笔记(四)littleVGL LVGL 控件学习 Arc 弧形控件
先看效果,创建了两个Arc 弧形控件,一个可触摸拖动的默认风格,一个动画控制的自定义风格的弧形控件 ESP-IDF版本:V4.2 littleVGL版本:V7.10.0 开发板购买链接https:// ...
- LittleVGL(LVGL)学习笔记——PC 模拟器的安装和使用(CodeBlocks)
目录 一.简介 1.LittleVGL 所支持的 IDE 软件种类: 2.需要的工具: 二.安装配置软件和环境 1.littleVGL 模拟器库 2.安装CodeBlocks 三.创建工程项目 四.配 ...
- LittleVGL『Objects对象』介绍
一. LVGL对象概念 littleVGL 是以对象为概念的,而其最核心的基础对象是 lv_obj 控件,其他的所有专用控件(比如按钮,标签,列表等)都是在此 lv_obj 对象的基础上衍生出来的. ...
- LittleVGL踩坑指南03:Arduino下显示和触摸驱动配置(TFT_eSPI)
文章版本7.10,LVGL更新极快,不同版本配置方法可能存在差异 前言 触摸搞了好几天,坑太多了,好在总算飞过来了.顺便把显示驱动也写了:提前说一下,我的硬件是2.4寸ILI9341驱动屏幕+XP ...
最新文章
- jquery实现截取pc图片_jquery 上传图片自由截取
- UI设计师必知:link和@import引用css文件方法的区别
- 【HAOI2010】工厂选址题解
- python基础-字典的增删改查
- 中小企业怎样转型做跨境电商独立站?
- JAVA中dot的用法_Java 方法
- Sublime Text3报错:Error while loading PyV8 binary:exit code 3
- N81各种问题解决汇总
- qu32调音台说明书_Qu-32 数字调音台
- 矩阵分解 Cholesky分解
- python行列式值计算程序_2、3阶行列式计算(python代码)
- 联合概率 条件概率 边缘概率之间关系
- Netflix公司Druid应用实践
- 小学和初中计算机的图案,信息技术和小学数学“图形和几何”的有效融合
- python 词云(Word Cloud)设计
- HDMI RGB_TO_DVI模块
- excel怎么拆分成多个独立表格文件
- eversync safari_EverSync安卓版
- Hive记录-Hive常用命令操作
- Python字符串处理:过滤字符串中的英文与符号,保留汉字
热门文章
- Linux Deamon函数
- 高级英语(张汉熙版)第一册学习笔记(原文及全文翻译)——2 - Hiroshima-The “Liveliest“ City in Japan (excerpts)(广岛——日本“最有活力”的城市)
- .caj文件转换为.pdf文件
- 订单导出(淘宝天猫)
- 八种常见的防盗链方法总结及分析 (转自http://www.cnblogs.com/uubox)
- 4k视频分辨率的码流_拍摄4K,30帧视频,多少码率合适?
- c语言求闰年while,基础练习 闰年判断 c语言
- 干货分享:如何把APP软文推广做到好
- 【移动安全高级篇】————2、浅谈Android软件安全自动化审计
- 计算机上fn按键,fn键设置方法