Python3基础知识3

1 Python3 字典

字典是另一种可变容器模型,且可存储任意类型对象。
字典的每个键值(key=>value)对用冒号(:)分割,每个对之间用逗号(,)分割,整个字典包括在花括号({})中 ,例如:

1
d = {key1 : value1, key2 : value2 }

而这一特性与 Json 十分相似,例如某个 Json对象:

1
{a:666,b:"Hello",c:"World"}

某个Python3字典例子:

1
dict = {'Alice': '2341', 'Beth': '9102', 'Cecil': '3258'}

阅读更多
Lv_indev的探究

1 lv_indev的作用

在LittlevGL的全局设置中可以看到(如下图),lv_indev的作用是定义获取输入操作的周期,单位为毫秒。

2 效果

  • #define LV_INDEV_READ_PERIOD 10的时候,在屏幕上滑动列表,感觉滑动的效果会比较流畅
  • #define LV_INDEV_READ_PERIOD 50的时候,在屏幕上滑动列表,感觉滑动的效果有明显的卡顿感

3 实现过程

在 lv_obj.c 文件中可以找到如下定义,lv_indev的启动入口即是从这里开始

阅读更多
Python3基础知识2

1 Python3 列表

序列是Python中最基本的数据结构。序列中的每个元素都分配一个数字 - 它的位置,或索引,第一个索引是0,第二个索引是1,依此类推。
Python有6个序列的内置类型,但最常见的是列表和元组。

1.1 访问列表中的值

使用下标索引来访问列表中的值,同样你也可以使用方括号的形式截取字符,例如:

1
2
3
4
5
#!/usr/bin/env python3  
list1 = ['Aliyun', 'Baidu', 1997, 2000];
list2 = [1, 2, 3, 4, 5, 6, 7 ];
print ("list1[0]: ", list1[0])
print ("list2[1:5]: ", list2[1:5])

输出如下:

1
2
list1[0]:  Aliyun
list2[1:5]: [2, 3, 4, 5]

阅读更多
Python3基础知识1

1 Hello world

以下是Python3打印输出的写法

1
2
#!/usr/bin/env python3
print("Hello, World!");

对于第一行代码 #!/usr/bin/env python

  • 如在终端果使用 python test.py 调用,则第一行代码被忽略,相当于注释。
  • 如果在终端使用 ./test.py 调用,则第一行代码这是指定解释器的类型。
  • 第一行代码其实还可以写成 #!/usr/bin/python ,而这样是告诉操作系统直接调用/usr/bin下的python解释器,但是如果加上了env相当于告诉操作系统先去环境变量中找python的路径,再调用路径下的解释器,所以不加env则相当于把路径写死了,一般推荐加上env的写法。
阅读更多
探究Lv_group

1 lv_group的作用

在LittlevGL的全局设置中可以看到(如下图),lv_group是keyboards的扩展功能。

2 效果

在演示程序中可以看到,通过“Next”按键可以控制群对象中的对象之间的切换,类似于电脑上的“Tab键”控制窗口上的菜单之间的切换

阅读更多
LittlevGL新版字库图片转换器

1 PHP 环境安装

1.1 下载

下面是 PHP7.2 的 windows 64位非安全线程版
VC15 x64 Non Thread Safe

1.2 安装环境

  • 将下载后的压缩包解压

  • 在系统变量中添加解压后的文件夹的路径,如图所示

  • 变量中php文件夹的根目录与php文件夹中的扩展目录都要添加上去

  • 将php根目录中的 php.ini-development 文件 改名为 php.ini

阅读更多
Lv_refr的探究

1 lv_refr的作用

在 lv_conf 中可以看到如下宏定义,表示定义屏幕刷新周期的时间,单位为毫秒

2 效果

与 lv_indev 相似,数值越大视觉感受越差

  • #define LV_REFR_PERIOD 1的时候,在屏幕上滑动列表,感觉滑动的效果会比较流畅。
  • #define LV_REFR_PERIOD 40的时候,在屏幕上滑动列表,感觉滑动的效果有明显的卡顿感,如果数值大于LV_INDEV_READ_PERIOD的数值,这会有非常明显的卡顿感。
阅读更多
浮点数、定点数

什么是定点数

通俗的解释

​ 定点数指小数点在数中的位置是固定不变的,通常有定点整数和定点小数。在对小数点位置作出选择之后,运算中的所有数均应统一为定点整数或定点小数,在运算中不再考虑小数问题。

阅读更多
Lv_obj的探究

1 lv_obj的作用

obj 即 对象,也是LittlevGL中构成各种容器、页面、控件最基本的元素,就是说GUI中的各种元素都是在obj的基础上增加扩展功能或修改样式而来的。

2 效果

使用lv_obj_create创建一个基本的空对象并将其作为屏幕,其父级与样式复制都为NULL

效果:

阅读更多
Lv_mem的探究

1 lv_mem 的作用

在 lv_conf 中可以看到LittlevGL的内存管理有两种方式,一种是使用 stdlib 标准库中的mallocfree,另外一种是使用LvGL内建的lv_mem_alloclv_mem_free。同时在LV_MEM_SIZE处定义使用的内存大小,如下所示定义为 128KB

2 效果

lv_mem 会根据定义的内存大小初始化一段内存空间,LittlevGL 中所有的数据将在这段内存空间上存储活动。

  • 如果事先没合理的考虑GUI使用内存的问题,在使用过程中很可能会出现内存溢出的问题,导致在使用GUI中的某个控件或者切换页面时出现崩溃的现象
  • 一般如果定义的内存大小合理超过GUI正常使用所需要的内存需求时,一般都不会有问题。
阅读更多