剑网三魁首怎么做网站,深圳软件公司排行,建设简单企业网站,怎么把危险网站对象 概念 在 LVGL 中#xff0c;用户界面的基本构建块是对象。例如#xff0c;按钮#xff0c;标签#xff0c;图像#xff0c;列表#xff0c;图表或文本区域。
属性 基本属性 所有对象类型都共享一些基本属性#xff1a;
Position (位置) Size (尺寸) Parent (父母…对象 概念 在 LVGL 中用户界面的基本构建块是对象。例如按钮标签图像列表图表或文本区域。
属性 基本属性 所有对象类型都共享一些基本属性
Position (位置) Size (尺寸) Parent (父母) Click enable (单击启用) 我们可以使用 lvgl.obj_set_… 和 lvgl.obj_get_… 等前缀的函数设置或者获取这些属性。 例如
– 设置基础对象的属性 lvgl.obj_set_size(btn, 100, 50) – 设置按键的大小 lvgl.obj_set_pos(btn, 20,30) – 设置按键的位置 特殊属性 有些对象类型也具有特殊的属性。例如滑块具有
min、max、values (最小最大值) current value (当前值) custom styles (自定义样式) 对于这些属性每种对象类型都有唯一的 API 函数。例如一个滑块的 API 调用过程
– 设置滑块的特殊属性 lvgl.slider_set_range(slider, 0, 100) – 设置滑块的最小值和最大值 lvgl.slider_set_value(slider, 40, LV_ANIM_ON) – 设置当前值(屏幕坐标系位置) lvgl.slider_set_action(slider, my_action) – 设置回调函数 工作机制 继承 父对象可以作为其子对象的容器。每个对象只能一个父对象屏幕除外但是一个父对象可以有无限多个子对象。父对象的类型没有限制但是有特殊的父对象例如按钮和特殊的子对象例如标签。
追随 如果更改了父对象的位置则子对象将与父对象一起移动并且子对象的位置都保持相对于父对象位置不变。 例如坐标 (0,0) 表示子对象将独立于父对象的位置保留在父对象的左上角代码
par lvgl.obj_create(lvgl.scr_act(), nil) – 在当前屏幕中创建一个对象 lvgl.obj_set_size(par, 100, 80) – 设置对象的大小
obj1 lvgl.obj_create(par, nil) – 基于前面创建的对象(par)创建一个子对象(obj1)之前的对像成为父对象 lvgl.obj_set_pos(obj1, 10, 10); – 设置子对象的位置
当我们修改父对象的位置子对象也会一起移动以保持和父对象的相对位置不变
lvgl.obj_set_pos(par, 50, 50); – 移动父对象子对象也会跟着移动以保持相对位置不变
创建-删除 在LVGL中可以在运行时动态地创建和删除对象。这意味着仅当前创建的对象需要消耗 RAM。例如如果需要图表我们可以在需要时创建它并在不可见或不需要时将其删除。 每个对象类型都有各自的创建函数。它需要两个参数
指向父对象的指针。创建屏幕时以 nil作为父级。 用于复制具有相同类型的对象的指针(可选)。如果不行进行复制操作为 nil。 创建函数如下所示 lvgl._create(parent, copy) lvgl.obj_del 将立即删除该对象。
我们可以使用 lv_obj_clean 删除对象的所有子对象但不会删除对象本身
lvgl.obj_clean(obj) 屏幕对象 创建屏幕对象 屏幕是没有父对象的特殊对象。应该像这样创建它们
scr lvgl.obj_create(nil, nil) 可以使用任何对象类型创建屏幕。例如创建墙纸的基础对象或图像。
获取活动屏幕 这始终是每个显示屏上的活动屏幕。默认情况下该库为每个显示创建并加载 “基础对象” 作为屏幕。 要获取当前活动的屏幕使用函数 lvgl.scr_act()
载入屏幕 调用函数 lvgl.scr_load(scr) 加载屏幕。
零件 (Parts) 控件可以包含多个 Parts。例如按钮仅具有主要部分而滑动条则由背景指示器和旋钮组成。 控件名称的构造类似于 lvgl. PART 。比如 lvgl.BTN_PART_MAIN 、 lvgl.SLIDER_PART_KNOB 。 通常在将样式添加到对象时使用 Parts。使用 Parts 可以将不同的样式分配给对象的不同 Parts。
状态 对象可以处于以下状态的组合
lvgl.STATE_DEFAULT – 默认或正常状态 lvgl.STATE_CHECKED – 选中或点击 lvgl.STATE_FOCUSED – 通过键盘或编码器聚焦或通过触摸板/鼠标单击 lvgl.STATE_EDITED – 由编码器编辑 lvgl.STATE_HOVERED – 鼠标悬停现在还不支持 lvgl.STATE_PRESSED – 按下 lvgl.STATE_DISABLED – 禁用或无效 当用户按下释放聚焦等对象时状态通常由库自动检测更改。 当然状态也可以手动检测更改。 要完全覆盖当前状态调用 lvgl.obj_set_state(obj, part, lvgl.STATE…) 要设置或清除某个状态(但不更改其他状态)调用 lvgl.obj_add/clear_state(obj, part, lvgl.STATE_…) 可以组合使用状态值。例如 lvgl.obj_set_state(obj, part, lvgl.STATE_PRESSED)。