LVGC简介

light video Graphics Library
(1)纯c与语言编程,将面向对象的思想植入c语言。
(2)轻量化图形库资源,人机交互效果好,在(ios Android QT)移植性较好,但是这些平台对硬件要求较高

lcgc工程搭建

  1. 工程源码的获取
    获取工程结构
    https://github.com/lvgl/lv_port_pc_vscode/tree/master
    在这里插入图片描述
    获取lvgl组件库
    https://github.com/lvgl/lvgl/tree/db62f65c22811acf36b9b83da0228d7389317283
    在这里插入图片描述将工程架构压缩包装包解压到Linux下,解压LCGL到工程的lvgl文件夹下
  2. 根据README进行操作
  3. 工程的编译

编程思想

使用面向对象操作,由于c语言中没有类的盖面,用结构体代替
在这里插入图片描述

lvgl中examples文件的解释

anim:存放与动画(Animation)相关的示例
arduino:针对 Arduino 平台的示例
assest:资源
event:事件(Event)相关示例,像按钮点击、滑动等事件的监听、处理逻辑
get_started:入门示例,适合刚接触 LVGL 的开发者,包含最基础的初始化、简单控件创建等代码,帮用户快速搭建起基本使用框架 。
grad:渐变(Gradient)相关示例,比如颜色渐变效果在控件(如按钮、窗口背景等)
layouts:布局(Layout)示例,介绍 LVGL 各种布局管理方式,像行列布局、对齐方式等,让界面元素能合理排列
libs:可能存放一些辅助库、第三方依赖库相关的示例,或者是 LVGL 自身基础库功能的演示
others:其他杂项示例
porting:移植相关示例
scroll:滚动(Scroll)相关示例
styles:样式(Style)示例
widgets:控件(Widgets,如按钮、标签、滑块等 )示例,每个常用控件的创建、配置、交互逻辑等

控件基本操作

新建对象

lv_obj_t *obj = lv_obj_create(lv_screen_active());//新建一个对象,是整个屏幕作为父
// 设置宽度、高度
lv_obj_set_width(obj, new_width);
lv_obj_set_height(obj, new_height);
lv_obj_set_size(struct _lv_obj_t *obj, lv_coord_t w, lv_coord_t h)// 获取宽度、高度
lv_obj_get_width(obj);
lv_obj_get_height(obj);// 设置x轴、y轴方向的坐标位置
lv_obj_set_x(obj, new_x);
lv_obj_set_y(ob

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/web/91371.shtml
繁体地址,请注明出处:http://hk.pswp.cn/web/91371.shtml
英文地址,请注明出处:http://en.pswp.cn/web/91371.shtml

如若内容造成侵权/违法违规/事实不符,请联系英文站点网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

嵌入式第十六课!!!结构体与共用体

一、结构体结构体是一种数据类型,它的形式是这样的:struct 结构体名{ 结构体成员语句1;结构体成员语句2;结构体成员语句3;};举个例子:struct Student {int id;char name[20];float score…

java web 实现简单下载功能

java web 实现简单下载功能 项目结构├── src\ │ ├── a.txt │ └── com\ │ └── demo\ │ └── web\ │ ├── Cookie\ │ ├── download\ │ ├── homework\ │ ├── serv…

虚幻基础:模型穿模

能帮到你的话,就给个赞吧 😘 文章目录模型穿模模型之间的阻挡是否正确设置模型是角色的组件:角色的组件不会与场景中其他的物体发生阻挡但可以发生重叠模型穿模 模型之间的阻挡是否正确设置 模型是角色的组件:角色的组件不会与场…

【Linux】linux基础开发工具(二) 编译器gcc/g++、动静态库感性认识、自动化构建-make/Makefile

文章目录一、gcc/g介绍二、gcc编译选项预处理编译汇编链接三个细节三、动静态库感性认识动静态库的优缺点四、自动化构建-make/Makefile背景知识初步上手Makefilemakefile的推导过程makefile语法一、gcc/g介绍 我们之前介绍了编辑器vim,可以让我们在linux上linux系统…

CentOS 7 上使用 Docker 安装 Jenkins 完整教程

目录 前言 准备工作 系统要求 检查系统信息 更新系统 安装Docker 第一步:卸载旧版本Docker(如果存在) 第二步:安装必要的软件包 第三步:添加Docker官方仓库 第四步:安装Docker CE 第五步:启动Docker服务 第六步:验证Docker安装 第七步:配置Docker用户权限…

30.【.NET8 实战--孢子记账--从单体到微服务--转向微服务】--单体转微服务--公共代码--用户上下文会话

在前面的文章中,我们会看到使用ContextSession来获取当前用户的UserId和UserName。这篇文章我们就一起来看看如何实现ContextSession。 一、ContextSession的实现 我们在公共类库SP.Common中创建一个名为ContextSession的类,用于获取当前请求的用户信息。…

BaseDao

#### 10.1 DAO概念> DAO:Data Access Object,数据访问对象。 > > Java是面向对象语言,数据在Java中通常以对象的形式存在。一张表对应一个实体类,一张表的操作对应一个DAO对象!>> 在Java操作数据库时&a…

USRP捕获手机/路由器数据传输信号波形(中)

目录: USRP捕获手机/路由器数据传输信号波形(上) USRP捕获手机/路由器数据传输信号波形(中) USRP捕获手机/路由器数据传输信号波形(下) 三、双工通信信号捕获 3.1 信号接收系统 5805e6Hz&a…

使用 Kiro AI IDE 3小时实现全栈应用Admin系统

Hello, 大家好,我是程序员海军, 全栈开发 |AI爱好者 | 独立开发。 之前我是采用Node生态开发的大模型以及MCP Server,大模型开发的生态主要是Python语言,为了更好的学习大模型开发,于是开了新坑。开始学习Python, 以及…

浏览器pdf、image显示

浏览器地址栏 pdf data:application/pdf;base64, data:application/pdf;base64,JVBERi0xLjcKJeLjz9MKMjMgMCBvYmoKPDwv image data:image/jpeg;base64, data:image/jpeg;base64,/9j/4Q3fRXhpZgAATU0AKgAAAAgABwE

《Linux运维总结:银河麒麟V10 SP3启动docker容器报错permission denied》

总结:整理不易,如果对你有帮助,可否点赞关注一下? 更多详细内容请参考:Linux运维实战总结 一、环境信息 二、背景 1、使用docker启动一个nginx容器,报错信息如下: docker: Error response from…

PDF源码解析

PDF源码解析打开PDF解析PDF​0. 文件头关键信息解析技术原理图解文件头的重要性实际文件结构示例开发者注意事项历史背景1. 根目录整体结构关键字段解析核心概念解释实际应用场景完整对象关系图技术总结2. 页面树对象结构关键字段解析页面树工作原理技术要点总结实际应用3. 图像…

java开闭原则 open-closed principle

基本知识 1.核心思想:面向抽象编程 2.基本内涵:对修改关闭,对扩展开放 3.要求:尽可能不修改源码而是增加新功能 例子 以spring5核心原理与30个类手写实战中的为例 package com.gupaoedu.vip.design.principle.openclose;/*** Crea…

拥抱智慧物流时代:数字孪生技术的应用与前景

概述 在数字经济全面推进的当下,物流行业正经历着前所未有的智能化升级。作为新一代信息技术的重要代表,数字孪生技术正悄然改变着物流的运作方式和决策模式。所谓数字孪生,是指在虚拟空间中创建与现实物流系统高度一致的数字模型&#xff0…

libnest2d-头文件分析-libnest2d.hpp-几何类型-策略类型-参数配置

libnest2d 库的主头文件,定义了一个用于 二维不规则形状自动排样(Nesting) 的C接口。以下是详细解析:1. 头文件结构 (1) 防止重复包含 #ifndef LIBNEST2D_HPP #define LIBNEST2D_HPP // ... #endif // LIBNEST2D_HPP确保头文件只被…

【Docker】部署Docker可视化管理面板Dpanel

一、DPanel 介绍 1.1 DPanel 简介 DPanel 是一款专为 Docker 设计的可视化管理面板,旨在降低容器、镜像及相关资源的管理门槛。通过简洁直观的图形化界面,即使是对 Docker 不熟悉的用户,也能轻松上手,实现容器化应用的高效部署与管…

GCC/G++ + Makefile/make 使用

一、gcc\g编译器 什么是gcc和g,它们的区别又是什么? gcc编译器是专门用来编译C语言的,而g编译器既可以编译C语言又可以用来编译C,但是主要还是用来编译C。 我们都知道代码形成可执行程序都是需要经过预处理、编译、汇编和链接这四…

重复文件查找工具:DataSecurity Plus 全面提升企业文件管理效率

企业日常运营经常会出现这样的场景:员工在文件传输、共享与备份过程中,因操作不当或系统设置问题,出现文件重复存储;跨部门协作时,相同的项目资料可能被多次保存;随着数据迁移与系统升级,重复文…

【软件架构】资源池架构设计中的三种主流模式

在资源池架构设计中,三种主流模式——集中式、分布式和混合式资源池——各有其独特的优势、劣势和适用场景。理解它们的区别对于设计高效、可靠和可扩展的系统至关重要。 下面是对这三种模式的详细分析和比较:集中式资源池 核心概念: 将所有计…

Java 类加载冲突

在某次线上部署过程中,我们遇到了一个十分诡异的问题:同样的应用,在 ext3 文件系统下运行正常,但部署到 ext4 文件系统下却出现了如下异常:The methods class, com.ctc.wstx.io.StreamBootstrapper, is available from…