microPython环境下的lvgl开发心得

2023-11-18

microPython环境下的lvgl是c代码通过pycparser转换成python代码的。因此没有python环境下的源文件。发开需依靠REPL(交互式控制台)调出文档配合c源码进行。
以变换内置主题为例,记录下开发思路。
打开REPL,输入

import lvgl as lv
help(lv)

在这里插入图片描述
得到类lv下所有的方法和类,查找theme相关,有如下方法:

  theme_set_current -- <function>
  theme_get_current -- <function>
  theme_templ_init -- <function>
  theme_get_templ -- <function>
  theme_default_init -- <function>
  theme_get_default -- <function>
  theme_alien_init -- <function>
  theme_get_alien -- <function>
  theme_night_init -- <function>
  theme_get_night -- <function>
  theme_zen_init -- <function>
  theme_get_zen -- <function>
  theme_mono_init -- <function>
  theme_get_mono -- <function>
  theme_nemo_init -- <function>
  theme_get_nemo -- <function>
  theme_material_init -- <function>
  theme_get_material -- <function>

打开c源码在lv_theme.h中有相关源码的注释

/**
 * Set a theme for the system.
 * From now, all the created objects will use styles from this theme by default
 * @param th pointer to theme (return value of: 'lv_theme_init_xxx()')
 */
void lv_theme_set_current(lv_theme_t * th);

经解释器转换后为lv.theme_set_current,用于设置整个系统的默认主题。

以及lv_theme_night,h中的

/**
 * Initialize the night theme
 * @param hue [0..360] hue value from HSV color space to define the theme's base color
 * @param font pointer to a font (NULL to use the default)
 * @return pointer to the initialized theme
 */
lv_theme_t * lv_theme_night_init(uint16_t hue, lv_font_t * font);

经解释器转换后为lv.theme_night_init,为内置的night主题。两个输入参数,hue为色调,范围(0-360),font为字体,在刚刚REPL的输出中查找lv_font_t型,得到

  font_roboto_16 -- struct lv_font_t
  font_roboto_28 -- struct lv_font_t

所以设置默认主题的py代码如下

lv.theme_set_current(lv.theme_night_init(360,lv.font_roboto_16))

更改指定控件主题

以常用的按钮为例,在c源码lv_btn.h

/**
 * Set a style of a button.
 * @param btn pointer to button object
 * @param type which style should be set
 * @param style pointer to a style
 *  */
void lv_btn_set_style(lv_obj_t * btn, lv_btn_style_t type, const lv_style_t * style);

对应py代码lv.btn.set_style

scr = lv.obj()
btn = lv.btn(scr)
theme1=lv.theme_alien_init(100,lv.font_roboto_16)
btn.set_style(btn.STYLE.REL,theme1.style.btn.rel)
btn.set_style(btn.STYLE.PR,theme1.style.btn.pr)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

microPython环境下的lvgl开发心得 的相关文章

  • LVGL lv_label标签控件(5)

    lv label 相关API在lv label h中 文本模式 span class token keyword enum span span class token punctuation span span class token co
  • lvgl显示中文和自定义图标

    lvgl显示中文和自定义图标 显示中文 制作字库 lvgl字库在线制作网址 https lvgl io tools fontconverter 下面以制作 按钮 这两个汉字字库为例 首先选择一个字体文件 可以在网上找 xff0c 也可以去电
  • LVGL——PC模拟器仿真模拟+VS2017

    目录 LVGL介绍移植说明资源下载环境搭建编译运行 本文只针对当时的LVGL v7 xff0c LVGL迭代过程中变化较大 xff0c 部分接口有可能做调整 本文仅供参考 LVGL介绍 官网 xff1a https lvgl io 官方在线
  • LVGL 优化帧率技巧

    目录标题 前文未优化版本LVGL帧率限制刷屏方法效率代码优化等级编译器版本LVGL显存单buffer非全尺寸双buffer全尺寸双buffer 本文只针对当时的LVGL v7 xff0c LVGL迭代过程中变化较大 xff0c 部分接口有可
  • 三.LVGL学习——(Buttons styles)

    三 LVGL学习 xff08 Buttons styles xff09 1 按钮对象样式 2 程序 定义三个lv style t变量 static lv style t style btn 按钮1按下前的样式变量 static lv sty
  • LVGL V8

    本文适用于LVGL V8版本 LVGL simulator vs2019 官方工程 lv sim visual studio 使用注意事项 1 将官方工程从github上下载下来 最好使用git 将整个工程clone下来 因为工程内部有依赖
  • LVGL视频课程更新啦,基于lvgl v8.2版本,课程适配多个平台、多款板子

    视频教程观看 百问网LVGL v8 系列课程 韦东山 监制 教程基于lvgl v8 2版本 课程适配多个平台 多款板子 百问网LVGL v8 视频课程 韦东山 监制 教程基于lvgl v8 2版本 课程适配多个平台 多款板子 视频学习地址
  • lvgl 自定义控制表格行高、颜色和外框样式

    lvgl 自定义控制表格行高 颜色和外框样式 lvgl版本 8 3 7 lvgl自带表格控件能够指定列宽 但是表格行高是根据内容动态渲染的 表格自带样式如图 带有蓝色的外框和白底 如果想要手动控制表格行高 颜色和外框等属性 需要监听表格绘制
  • 图形库LVGL v8.2版本移植

    图形库LVGL v8 2版本移植 环境 硬件 前提准备 下载图形库代码 图形开发中的字体转换 图片转换 GUI GUIDER 图形化开发lvgl 移植 加入相关源代码到工程中 提供时钟信号给lvgl 使用GUI Guider 生成代码 并加
  • LVGL8制作简易时钟

    通过这两天对LVGL8的部分控件和样式的学习 自己制作了一个简易时钟 可显示时间 日期 星期 用到的主要有样式 布局等对象 还是通过codeblock来模拟代码的运行 代码如下 typedef struct lv clock lv obj
  • LVGL在linux环境搭建篇

    LVGL环境搭建 1 环境准备 1 下载源码 https github com lvgl lvgl https github com lvgl lvgl 2 新建lvgl 文件夹 把src 和lvgl h 和lv conf template
  • LVGL学习笔记6 - 输入设备

    目录 1 移植文件 2 移除多余代码 3 输入设备初始化 4 输入设备读回调函数 4 1 LV INDEV TYPE POINTER 4 2 LV INDEV TYPE KEYPAD 4 3 LV INDEV TYPE ENCODER 4
  • 【LVGL 学习】LVGL 在 arduino 环境的安装

    1 前提条件 使用 arduino IDE开发 使用 ESP32 作为主控 屏幕使用 ST7789 驱动 240 240像素TFT屏幕 注意 屏幕驱动部分不再这个赘述 以后开贴另行发布 2 安装 LVGL 库 打开 arduino 菜单栏中
  • 【LVGL】ANIM(动画)学习

    animate 通用动画 过渡动画与通用动画的区别 过渡动画只有在状态发生改变时发生 通用动画可以在任意时刻进行 过渡动画支是样式 style 的一部分 通用动画和样式是相互独立的 实际上 过渡的底层也使用的是动画 创建动画 为了创建动画
  • lvgl8.2 img 图片显示

    1 lvgl 图片显示源 为了提供良好的图片显示灵活性 所以显示图像的来源可以是以下三种 代码中的一个变量 一个带有像素颜色数据的 C 数组 存储在外部的文件 比如 SD 卡 带有符号的文本 2 内部图片 对于源码内部图片 将图片转换为图片
  • [GUI]stm32搭载3.5寸SPI-TFT屏移植LittleVGL

    唠几句 记录下移植笔记 新项目用到LVGL 也是首次接触GUI库 所以Emmmm 学呗 之前都是直接在LCD屏上画点 画线 画圆 画个矩形 画个多边形 显示个字符串 显示张图片而已 没有用过GUI库 在网上找了点学习资料 然后把LVGL库的
  • LVGL8学习之row and a column layout with flexbox

    这一篇来学习一下基于flexbox 柔性盒子 简单行和列布局 还是通过codeblock来模拟代码的运行 可设置layout对象内部的水平和竖直填充 以及布局内各item之间的间隔填充 代码如下 void lv flex layout te
  • 使用RT-Thread studio 把LVGL移植到RT-Thread 上

    使用RT Thread studio 移植 LVGL到RT Thread中 其实RT Thread 移植LVGL 官方已经出来很多教程 但是但是他出的教程都是基于一些他们适配的BSP 但是其他不适配的怎么办呢 当然是手搓了 前期准备 1 在
  • 【LVGL 学习】样式(style)过渡动画学习

    transition 过渡动画 当一个控件的状态发生改变时 可以让样式也发生变化以提醒用户 通过过渡动画 transition 可以让样式的改变更自然 例如 按钮在点击时 以及开关在切换时 都具有一小段的过渡动画 过渡动画使用 lv sty
  • LVGL---文本框(lv_textarea)

    目录 lv textarea文档地址 lv textarea文档地址 lvgl中文版本 v8 2 对应网盘中文文档 LVGL官方英文原版 v8 2

随机推荐

  • 华为OD机试 - 找出两个整数数组中同时出现的整数(Java )

    题目描述 现有两个整数数组 需要你找出两个数组中同时出现的整数 并按照如下要求输出 有同时出现的整数时 先按照同时出现次数 整数在两个数组中都出现并目出现次数较少的那个 进行归类 然后按照出现次数从小到大依次按行输出 没有同时出现的整数时
  • 什么是Ntrip?Ntrip协议简介

    文章目录 Ntrip通讯协议1 0 Ntrip是什么 Ntrip系统组成 NtripServer NtripClient 4 1 获取源列表 4 2 获取差分数据 其他资料 Ntrip通讯协议1 0 Ntrip是什么 NTRIP是在互联网上
  • 可能是把Docker的概念讲的最清楚的一篇文章

    编者的话 本文只是对Docker的概念做了较为详细的介绍 并不涉及一些像Docker环境的安装以及Docker的一些常见操作和命令 Docker是世界领先的软件容器平台 所以想要搞懂Docker的概念我们必须先从容器开始说起 如果你想和更多
  • 【Python开发】Flask中的单点登录解决方案

    Flask中的单点登录解决方案 1 SSO 和 CAS 单点登录 Single Sign On SSO 就是通过用户的一次性鉴别登录 当用户在身份认证服务器上登录一次以后 即可获得访问单点登录系统中其他关联系统和应用软件的权限 同时这种实现
  • win10下载与安装mysql详细步骤

    下载mysql 下载地址 https dev mysql com downloads mysql 5 1 html downloads 下载完以后 解压到自己想要安装的目录下 文件如下图所示 配置环境 右击 此电脑 选中 属性 点击 高级系
  • Buuctf Exec

    打开该靶机 发现该页面为一个ping页面 输入127 0 0 1测试 发现和电脑cmd上ping的结果差不多 分析一下ping小技巧 的区别 A B 简单的拼接 A B之间无制约关系 A B A执行成功 然后才会执行B A B A的输出 作
  • SQL语句用法大全

    SQL Structured Query Language 是一个对数据库进行增删改查的语言 不过这玩意儿还是挺难理解的 所以我就写了这篇文章 希望能帮助到您 为了方便阐述 我做了以下表格作为数据表进行演示 ABOUT NAME char
  • java读取含有合并行的excel

    excel格式如下 代码如下 package com example demo excel import org apache poi hssf usermodel HSSFWorkbook import org apache poi ss
  • mongodb分片集群搭建

    1 本次搭建使用三台centos7主机搭建伪集群 关闭防火墙和selinux服务 2 mongodb架构相当于9个分片节点 3个路由节点 3个配置节点 主机信息如下图所示 主机名称 主机ip地址 端口 服务 A 10 1 60 114 20
  • [PCB]这里带你了解何为PCB?

    现在 我们的生活已经遍地是电子智能设备 如手机 电脑 电视等 打开这些设备的后盖 都会见到一块布满元器件的板子 如电脑主板 手机主板等 这些都是PCB板的一种 如下如所示 一 PCB的概念 PCB 的中文名称为印制电路板 他是Printed
  • 1.6. 从键盘输入一个3位整数,请编写程序计算三位整数的各位数字之和,并输出到屏幕上,要求输出占4列,右对齐。

    num int input 请输入一个三位整数 bai num 100 shi num 10 bai 10 ge num 100 bai 10 shi sum ge bai shi print 4d sum
  • Tiny4412 LCD驱动(DRM+设备树)

    0 前言 Tiny4412 LCD驱动 DRM 无设备树 所用linux 3 5 0没有使用设备树 和当前主流嵌入式Linux开发有一定的差距 实用性不大 因此我将内核升级到了最新稳定版linux 5 11 12 本文对该版本内核中的Tin
  • webservcie生成客户端代码报错----javax.xml.ws.soap.SOAPFaultException: Cannot create a secure XMLInputFactory

    javax xml ws soap SOAPFaultException Cannot create a secure XMLInputFactory 这个问题困扰了我一天 妈的 后来才发现是缺少了两个jar包 如下 服务器端缺少了两个ja
  • LTspice基础教程-014.绘制一份漂亮的仿真原理图

    规范原理图的画法能让原理图简洁易懂 下面贴出一份我绘制的原理图 在此基础上说明一些绘图技巧 spice指令类语句可以放到一块 这样便于修改查找 连线较长时建议使用网络标签 不同模块建议使用端口进行连接 不同模块可以使用虚线框绘制边界 比较美
  • ubuntu源详解 and 实现自己的ubuntu源 - [linux应用程序]

    ubuntu源详解 and 实现自己的ubuntu源 linux应用程序 2011 11 26 一直对linux源不太清楚 只是在网上直接找到对应源镜像 复制到本地使用 现在开始探索源 一 简介 linux内核对应各种各样的操作系统发行版本
  • 删除(取消、终止)亚马逊的云服务器Amazon EC2的操作方法、教程

    删除 取消 终止 亚马逊的云服务器Amazon EC2的操作方法 教程 关于Amazon EC2服务器 1 亚马逊的服务器只能终止 不能删除 终止后卷 存储 硬盘会自动关闭 如果没有快照不可恢复 2 终止的服务器会存在你的列表一段时间后自动
  • Centos7安装Django

    安装 setuptools yum install python3 setuptools 安装django pip3 install Django 3 0 6 i https pypi tuna tsinghua edu cn simple
  • Python爬虫从入门到精通:(28)scrapy数据持久化存储(基于终端指令)_Python涛哥

    scrapy数据持久化存储 基于终端指令 上节我们爬取到了内容 那么我们怎么做持久化存储呢 直接在parse方法中进行 with open as f 如果是这样的话 那我们就没必要使用框架了 scrapy框架中 我们封装好了持久化存储 im
  • DCGAN模型讲解及避坑指南

    最近在做科研上的项目 需要调各种GAN的模型 鉴于网上各种拿着标准数据集跑模型的流氓行为 本人决定推出一种对各种数据集都适用的模型训练教程 话不多说 先上代码 大家看着我的代码 加上我的讲解 相信所有人都能无痛调节模型的参数 我用的是git
  • microPython环境下的lvgl开发心得

    microPython环境下的lvgl是c代码通过pycparser转换成python代码的 因此没有python环境下的源文件 发开需依靠REPL 交互式控制台 调出文档配合c源码进行 以变换内置主题为例 记录下开发思路 打开REPL 输