当前位置: 首页 > wzjs >正文

做电商网站价格网络推广渠道分类

做电商网站价格,网络推广渠道分类,腾讯企业邮箱好用吗,做网站在哪里找素材LVGL-对象 lv_obj_t **LVGL 对象核心概念总结****1. 对象与控件的关系****2. 对象的基本属性****3. 父子对象结构****4. 屏幕与图层管理****活动屏幕(Active Screen)****图层(Layers)** **5. 关键函数与操作****6. 面向对象设计的…

LVGL-对象 lv_obj_t

    • **LVGL 对象核心概念总结**
      • **1. 对象与控件的关系**
      • **2. 对象的基本属性**
      • **3. 父子对象结构**
      • **4. 屏幕与图层管理**
        • **活动屏幕(Active Screen)**
        • **图层(Layers)**
      • **5. 关键函数与操作**
      • **6. 面向对象设计的实现**

LVGL 对象核心概念总结

1. 对象与控件的关系

  • 对象(Object) 是 LVGL 用户界面的基本组成单元,所有控件(如按钮、标签、图像等)均继承自 lv_obj_t 结构体。
  • 控件(Widget) 是对象的特例,是带有特定功能的可视化组件。
    • 术语混用原因:LVGL 采用面向对象设计思想,lv_obj_t 是基类,所有控件基于此扩展。使用“对象”更强调通用性和面向对象特性,而“控件”强调具体功能,两者在不同语境下交替使用。

2. 对象的基本属性

所有对象共享以下通用属性,可通过 lv_obj_set_...lv_obj_get_... 函数操作:

  • 位置lv_obj_set_pos(obj, x, y)
  • 大小lv_obj_set_size(obj, w, h)
  • 父对象lv_obj_set_parent(obj, parent)
  • 样式:通过 lv_obj_add_style() 添加样式
  • 事件处理程序:通过 lv_obj_add_event_cb() 注册回调

示例代码

lv_obj_t * btn1 = lv_btn_create(lv_scr_act());  // 创建按钮对象
lv_obj_set_size(btn1, 100, 50);               // 设置按钮大小
lv_obj_set_pos(btn1, 20, 30);                 // 设置按钮位置

3. 父子对象结构

  • 父对象 是子对象的容器,每个对象(除屏幕外)必须有一个且仅有一个父对象。
  • 子对象 的位置相对于父对象计算,超出父对象范围的部分不可见。
  • 父子关系特性
    1. 位置跟随:父对象移动时,子对象随之移动。
    2. 可见性裁剪:子对象超出父对象范围的部分被裁剪。
    3. 样式继承:子对象默认继承父对象的样式(除非显式覆盖)。
    4. 事件冒泡:子对象的事件可传递到父对象。

示例类比

  • 浏览器窗口(父对象)包含多个页签(子对象),页签内容不能超出浏览器窗口边界。

4. 屏幕与图层管理

活动屏幕(Active Screen)
  • 每个显示器始终存在一个活动屏幕,默认由 lv_scr_act() 获取。
  • 加载新屏幕lv_scr_load(scr1) 会替换当前活动屏幕。
  • 屏幕生命周期:屏幕对象可动态创建和删除,无需提前定义。
图层(Layers)

LVGL 自动管理两个特殊图层:

  1. 顶层(Top Layer)
    • 位于所有屏幕对象之上,适合弹窗、菜单栏等全局元素。
    • 可通过 lv_layer_top() 获取。
  2. 系统层(System Layer)
    • 位于顶层之上,用于系统级元素(如光标、状态栏)。
    • 可通过 lv_layer_sys() 获取,不建议手动添加子对象

层级关系
活动屏幕(screen_active) < 顶层(top layer) < 系统层(system layer)


5. 关键函数与操作

功能函数说明
创建对象lv_obj_create(parent)创建基础对象,需指定父对象(parentNULL 时创建屏幕)。
加载屏幕lv_scr_load(scr)替换当前活动屏幕。
获取活动屏幕lv_scr_act()返回当前显示的屏幕指针。
获取顶层/系统层lv_layer_top() / lv_layer_sys()返回顶层或系统层指针。
删除对象lv_obj_del(obj)删除对象及其所有子对象。
异步删除lv_obj_del_async(obj)异步删除对象(下次调用 lv_task_handler() 时生效)。
调整对象层级lv_obj_set_parent(obj, new_parent)修改对象的父容器,改变其显示层级。

6. 面向对象设计的实现

LVGL 在 C 语言中模拟面向对象特性,主要通过以下方式:

  1. 结构体模拟类lv_obj_t 结构体包含通用属性(如位置、样式)。
  2. 函数指针实现多态:通过函数指针定义对象的行为(如绘制、事件处理)。
  3. 继承与组合:子对象通过嵌套父对象结构体实现继承(如 lv_btn_t 包含 lv_obj_t)。

示例

// 所有控件继承自 lv_obj_t
typedef struct {lv_obj_t obj;         // 继承基础对象属性int value;            // 滑块特有属性
} lv_slider_t;

http://www.dtcms.com/wzjs/331533.html

相关文章:

  • 织梦网站模板如何安装教程视频教程公司网站建设费
  • 网站上的楼价走势图怎么做谷歌手机版下载安装
  • 网站开发全程设计百度seo排名主要看啥
  • 深圳企业医疗网站建设网站推广技巧
  • 营销型网站建设概述怎样设计一个网页
  • 创建免费网站的步骤营销推广seo
  • 做citation的网站足球排名世界排名
  • 建站平台步骤详解王通seo教程
  • 青岛品牌网站制作电话百度搜索大数据查询
  • 北京食药局网站年检怎么做百度搜索引擎工作原理
  • 广州网站建设性价比百度热度榜搜索趋势
  • 张店网站制作首选专家互联网营销师教材
  • 时时彩网站怎么建设什么是软文营销
  • 领域网站建设seo免费入门教程
  • 一个网站需要多少空间百度推广优化师培训
  • 深圳罗湖区网站建设营销策略有哪些
  • win7建设网站seo官网优化详细方法
  • 电商型网站是否是趋势百度推广代理加盟
  • wordpress模板电子书下载站电商营销策划方案
  • wordpress是干嘛的百度seo推广优化
  • 电子商务网站建设与管理试题及答案吉林seo技术交流
  • 做网站导航按钮怎么猛seo外包优化网站
  • 四平网站建设公司企业网搭建
  • 公司建设网站方案网络营销的5种方式
  • 旅游投资公司网站建设ppt模板厦门人才网招聘最新信息
  • 建立个人网站能干百度推广注册
  • 湖南省网站建设深圳优化公司找高粱seo服务
  • 上海建设银行官方网站设计网站推荐
  • 百度网站搜索排名舆情报告
  • 开封做网站图们网络推广