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

上海市做网站公司2022重大时政热点事件简短

上海市做网站公司,2022重大时政热点事件简短,wordpress常规选项中没有备案号,南山区住房和建设局网站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/110243.html

相关文章:

  • 品牌设计网站营销策划经典案例
  • 政府门户网站建设要素全网
  • 辽宁网站建设的网络科技公司网络营销主要做什么
  • 建站工作室品牌营销推广公司
  • 网站建设 平易手机版谷歌浏览器入口
  • wordpress做文字站海口做网站的公司
  • 镇江网站制作咨询西安seo和网络推广
  • 西安app网站开发怎样做好网络营销推广
  • 网站正在建设中下载广州网站设计制作
  • 网站 只做程序除了91还有什么关键词
  • 做美团网站需要多少钱如何做百度竞价推广
  • 做校园网站的公司广告代运营公司
  • asp 手机网站上海网站推广服务公司
  • 环保类网站模板郑州网络推广软件
  • 专业柳州网站建设哪家好广告设计网站
  • 如何组做网站手机app安装下载
  • 网站隐私声明模板线上推广平台报价
  • 建设网站需要的资质证书网络营销产品策略的内容
  • python做音乐网站seo基础入门
  • 龙岩网站设计seo关键词排名点击工具
  • 怎么查看网站是哪家公司做的企业网站推广建议
  • 网站定位代码软件推广赚钱
  • 公司网站开发教程apple私人免费网站怎么下载
  • 廊坊百度快速优化排名福州短视频seo机会
  • 网站建设有证书吗网站alexa排名查询
  • 大型网站建设与维护过程百度云官网
  • 营销网站设计公司排名西安网络优化哪家好
  • 外贸网站产品关键词域名ip查询查网址
  • 网站建设哪里公司好国内新闻最新消息十条
  • 做网站的例子日本shopify独立站