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_page页面控件(23)

    lv page 页面控件 xff0c 是由2个lv cont容器控件构成 xff0c 其中一个容器作为lv page页面控件的背景层 xff0c 另一个容器作为lv page页面控件的载体 xff0c 此载体存放其他任何子对象 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 部分接口有可
  • arduino-esp32:LVGL中文字库(通用)

    导航 概述 系统自带中文字库 使用自带中文字库 制作专属字库 使用专属字库 VS模拟器 效果 arduino esp32 效果 小结 概述 标题是arduino esp32只是因为平台是这个 LVGL默认的字库是英文的 当然其字库文件里也有
  • 图形库LVGL v8.2版本移植

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

    我们在设计UI的过程中可能需要显示一些图片 本篇文章将介绍如何转换并显示一个固定的图片到lv img中 文章目录 1 图片转换 1 1 GUI Guider 1 2 在线转换 2 图片的显示 1 图片转换 和之前我写的一篇字体转换的文章一样
  • 简单的LVGL按键例程

    以下是一个简单的LVGL按键例程 使用LVGL的按键事件来处理按钮的单击和长按操作 include lvgl lvgl h void btn click action lv obj t obj 处理按钮单击事件 void btn long
  • 【LVGL事件(Events)】事件在不同组件上的应用(一)

    点击 滑动 输入 数字改变等等都可触发事件 事件就是针对不同的操作做出相对应的反应 最近看到组态屏 这玩意开发起来好像挺简单的 哈哈哈 研究完LVGL的事件就看看这个 LVGL事件 Events 事件代码 喜暖知寒的博客 CSDN博客LVG
  • SquareLine Studio ecplise仿真环境搭建

    SquareLine Studio 是LVGL官方推荐的一款UI设计工具 可直接转成C源码 但只能演示UI效果 暂不支持在SquareLine Studio中源码仿真 它提供了另一种仿真方式 将源码工程导入到ecplise arduino等
  • 【LVGL 学习】COLOR 常用接口函数说明

    COLOR 接口常用函数说明 通常跟样式 style 接口函数搭配使用 文件位置 src misc lv color c lv palette t 枚举包含以下18种 LV PALETTE RED LV PALETTE PINK LV PA
  • 【LVGL 学习】加入内部字体

    使用到的软件 LvglFontTool exe 字符转换工具 链接 http www lfly xyz forum php mod viewthread tid 24 extra page 3D1 软件界面 按照软件界面配置 1 打开lvg
  • RTT下移植LVGL到W601_文件系统移植

    RTT下移植LVGL到W601 显示驱动移植 声明 个人学习笔记 不保证正确 参考资料 移植参考 DFS参考 图片 图片在线转换 环境 win10 keil5 硬件 正点原子w601开发板 步骤流程 1 在显示驱动移植完成的基础上添加tf卡
  • LVGL入门 常用的几个命令(个人笔记)

    前言 学习LVGL的过程中 常常知道有这个命令 也知道大概怎么用 但总想不起来命令叫什么 在整个库中找也显得麻烦 搞得每次写程序还要翻之前的Demo 所以在这里将学习过程中用到的命令 存放在这里 方便再使用的时候方便的找到命令名字 lv o
  • 【LVGL 学习】LVGL 在 arduino 环境的安装

    1 前提条件 使用 arduino IDE开发 使用 ESP32 作为主控 屏幕使用 ST7789 驱动 240 240像素TFT屏幕 注意 屏幕驱动部分不再这个赘述 以后开贴另行发布 2 安装 LVGL 库 打开 arduino 菜单栏中
  • lvgl8.2 img 图片显示

    1 lvgl 图片显示源 为了提供良好的图片显示灵活性 所以显示图像的来源可以是以下三种 代码中的一个变量 一个带有像素颜色数据的 C 数组 存储在外部的文件 比如 SD 卡 带有符号的文本 2 内部图片 对于源码内部图片 将图片转换为图片
  • LVGL V8应用——通过按键切换页面

    一 按键切换对象 程序 全局变量 static lv obj t contanier1 NULL static lv obj t contanier2 NULL 按钮对应回调函数 实现容器的切换 static void win btn ev
  • 使用RT-Thread studio 把LVGL移植到RT-Thread 上

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

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

    概述 在 LVGL 中 样式都是以对象的方式存在 一个对象可以描述一种样式 每个控件都可以独立添加样式 创建的样式之间互不影响 可以使用 lv style t 类型创建一个样式并初始化 static lv style t style lv
  • microPython环境下的lvgl开发心得

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

随机推荐

  • 华为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 输