当前位置:首页>java>LVGL应用编程:基础对象(一切界面的起点)

LVGL应用编程:基础对象(一切界面的起点)

  • 2026-01-23 05:58:41
LVGL应用编程:基础对象(一切界面的起点)

本文主要是系统的理论知识,开始一遍了解功能即可,后续用到再当字典查,文中涉及的实操界面,需要先搭建环境,需观看我上一篇文章:创建第一个LVGL工程https://mp.weixin.qq.com/s/zJ8hf4f36GGpJW_8vHf0Jw

LVGL应用编程之基础对象:一切界面的起点

一、理解LVGL的对象模型:从"积木块"开始

想象一下,你要用积木搭建一个城堡。在LVGL中:

  • • 每个积木块 = 一个对象(Object)
  • • 不同的积木形状 = 不同的控件(按钮、标签等)
  • • 搭建城堡的过程 = 创建和组织这些对象

核心思想:LVGL中一切皆对象,所有你能看到的东西(按钮、文字、图片)都是对象!

二、创建你的第一个对象:一个"透明盒子"

2.1 最简单的创建方式

// 获取当前屏幕(就像拿到一张画布)lv_obj_t *screen = lv_scr_act();// 创建一个基础对象(就像在画布上放一个透明盒子)lv_obj_t *my_object = lv_obj_create(screen);

代码解释

  • • lv_scr_act():获取当前活动的屏幕(画布)
  • • lv_obj_create():创建对象的函数
  • • parent参数:指定这个对象放在哪个"父对象"上

2.2 创建对象的不同方式

// 方式1:分两步lv_obj_t *screen = lv_scr_act();lv_obj_t *obj = lv_obj_create(screen);// 方式2:一步到位(更简洁)lv_obj_t *obj = lv_obj_create(lv_scr_act());// 方式3:创建子对象(对象里面再放对象)lv_obj_t *parent = lv_obj_create(lv_scr_act());lv_obj_t *child = lv_obj_create(parent);  // 这个对象放在parent里面

三、对象的基本属性:控制它的"外貌"

3.1 控制大小:set_size()

// 设置宽度和高度lv_obj_set_size(obj, 100, 50);  // 宽100像素,高50像素// 也可以分开设置lv_obj_set_width(obj, 100);    // 设置宽度lv_obj_set_height(obj, 50);    // 设置高度// 使用百分比(相对于父对象)lv_obj_set_size(obj, LV_PCT(50), LV_PCT(30));  // 宽占父对象50%,高占30%

3.2 控制位置:set_pos()

// 设置x和y坐标(相对于父对象的左上角)lv_obj_set_pos(obj, 100, 200);  // x=100像素,y=200像素// 也可以分开设置lv_obj_set_x(obj, 100);    // 设置x坐标lv_obj_set_y(obj, 200);    // 设置y坐标

3.3 完整示例:创建一个黑色方块

void create_black_square() {    // 创建对象    lv_obj_t *square = lv_obj_create(lv_scr_act());    // 设置大小    lv_obj_set_size(square, 100, 100);    // 设置位置(距离左上角50, 50)    lv_obj_set_pos(square, 50, 50);    // 设置背景颜色为黑色    lv_obj_set_style_bg_color(square, lv_color_hex(0x000000), LV_PART_MAIN);}
image-20260119150512250

四、对象的层级关系:谁在上面,谁在下面?

4.1 创建顺序决定显示顺序

// 先创建的在下面,后创建的压在上面lv_obj_t *obj1 = lv_obj_create(lv_scr_act());  // 在下面lv_obj_t *obj2 = lv_obj_create(lv_scr_act());  // 在上面lv_obj_set_pos(obj2, 50, 50);                   // 偏移位置               // 设置不同颜色以便区分lv_obj_set_style_bg_color(obj1, lv_color_hex(0x000000), LV_PART_MAIN);  // 黑色lv_obj_set_style_bg_color(obj2, lv_color_hex(0xFF0000), LV_PART_MAIN);  // 红色

运行结果:你会看到红色的方块盖在黑色方块上面。

image-20260119152047983

4.2 获取和操作层级关系

// 获取父对象(谁"装着"我)lv_obj_t *parent = lv_obj_get_parent(obj);// 获取子对象(我"装着"谁)// idx=0:第一个子对象,idx=1:第二个子对象,idx=-1:最后一个子对象lv_obj_t *first_child = lv_obj_get_child(parent, 0);lv_obj_t *last_child = lv_obj_get_child(parent, -1);// 获取兄弟对象(和我同一个父亲的其他对象)lv_obj_t *next_brother = lv_obj_get_child(parent, idx+1);

五、对象的对齐方式:让界面更整齐

5.1 常用的对齐方式

LVGL提供了18种对齐方式,最常用的有:

// 基本对齐(在父对象内对齐)LV_ALIGN_TOP_LEFT      // 左上角LV_ALIGN_TOP_MID       // 顶部中间LV_ALIGN_TOP_RIGHT     // 右上角LV_ALIGN_CENTER        // 正中间LV_ALIGN_BOTTOM_LEFT   // 左下角LV_ALIGN_BOTTOM_MID    // 底部中间LV_ALIGN_BOTTOM_RIGHT  // 右下角LV_ALIGN_LEFT_MID      // 左边中间LV_ALIGN_RIGHT_MID     // 右边中间// 外部对齐(在父对象外对齐)LV_ALIGN_OUT_TOP_MID    // 上方中间LV_ALIGN_OUT_BOTTOM_MID // 下方中间
image-20260119155642056

5.2 对齐的使用方法

// 方法1:简单对齐(在父对象内居中对齐)lv_obj_center(obj);// 方法2:指定对齐方式和偏移量lv_obj_align(obj, LV_ALIGN_TOP_LEFT, 10, 10);  // 左上角,向右偏移10,向下偏移10// 方法3:相对于另一个对象对齐lv_obj_align_to(obj2, obj1, LV_ALIGN_OUT_BOTTOM_MID, 0, 10);  // 在obj1下方10像素处

5.3 实际案例:创建整齐的按钮布局

void create_button_layout() {    // 创建父容器    lv_obj_t *container = lv_obj_create(lv_scr_act());    lv_obj_set_size(container, 300, 200);    lv_obj_center(container);    // 创建两个按钮    lv_obj_t *btn1 = lv_btn_create(container);    lv_obj_t *btn2 = lv_btn_create(container);    lv_obj_set_size(btn1, 80, 40);    lv_obj_set_size(btn2, 80, 40);    lv_obj_align(btn1, LV_ALIGN_TOP_MID, 0, 20);      // 顶部,向下20    lv_obj_align_to(btn2, btn1, LV_ALIGN_OUT_BOTTOM_MID, 0, 10);  // btn1下方10}
image-20260119164419425

六、深入理解盒子模型:为什么对象之间有缝隙?

6.1 盒子模型的四个层次

从外到内:1. 边界(Outline)    - 最外层,通常用于高亮2. 边框(Border)     - 对象的边框3. 内边距(Padding)  - 边框和内容之间的空隙4. 内容(Content)    - 实际显示内容的部分
image-20260119164750332

6.2 查看和修改盒子属性

// 查看对象各个部分的大小int border_width = lv_obj_get_style_border_width(obj, LV_PART_MAIN);int pad_all = lv_obj_get_style_pad_all(obj, LV_PART_MAIN);int outline_width = lv_obj_get_style_outline_width(obj, LV_PART_MAIN);// 修改盒子属性lv_obj_set_style_border_width(obj, 2, LV_PART_MAIN);      // 边框宽2像素lv_obj_set_style_pad_all(obj, 10, LV_PART_MAIN);         // 内边距10像素lv_obj_set_style_outline_width(obj, 5, LV_PART_MAIN);    // 边界宽5像素lv_obj_set_style_radius(obj, 10, LV_PART_MAIN);          // 圆角10像素

6.3 创建"紧密贴合"的布局

void create_tight_layout() {    // 创建对象    lv_obj_t *obj = lv_obj_create(lv_scr_act());    lv_obj_set_size(obj, 100, 100);    lv_obj_center(obj);    // 去除所有间距和圆角    lv_obj_set_style_pad_all(obj, 0, LV_PART_MAIN);    lv_obj_set_style_border_width(obj, 0, LV_PART_MAIN);    lv_obj_set_style_outline_width(obj, 0, LV_PART_MAIN);    lv_obj_set_style_radius(obj, 0, LV_PART_MAIN);  // 去掉圆角    // 现在对象之间可以完全贴合了}

示例:

void create_tight_layout() {    //创建对像    lv_obj_t * btn1 = lv_obj_create(lv_scr_act());    lv_obj_t * btn2 = lv_obj_create(lv_scr_act());    //设置大小    lv_obj_set_size(btn1, 80, 40);    lv_obj_set_size(btn2, 80, 40);    //设置位置    lv_obj_align(btn1, LV_ALIGN_TOP_MID, 0, 20);      // 顶部,向下20    lv_obj_align_to(btn2, btn1, LV_ALIGN_OUT_BOTTOM_MID, 0, 0);  // btn1下方10    //设置颜色    lv_obj_set_style_bg_color(btn1, lv_color_hex(0x000000), LV_PART_MAIN);    lv_obj_set_style_bg_color(btn2, lv_color_hex(0x00FF00), LV_PART_MAIN);    //去除所有间距和圆角    lv_obj_set_style_pad_all(btn1, 0, LV_PART_MAIN);    lv_obj_set_style_border_width(btn1, 0, LV_PART_MAIN);    lv_obj_set_style_outline_width(btn1, 0, LV_PART_MAIN);    lv_obj_set_style_radius(btn1, 0, LV_PART_MAIN);  // 去掉圆角    lv_obj_set_style_pad_all(btn2, 0, LV_PART_MAIN);    lv_obj_set_style_border_width(btn2, 0, LV_PART_MAIN);    lv_obj_set_style_outline_width(btn2, 0, LV_PART_MAIN);    lv_obj_set_style_radius(btn2, 0, LV_PART_MAIN);  // 去掉圆角}
image-20260119180544277

七、对象的状态和标志:让对象"活"起来

7.1 对象标志(Flags)

标志用来控制对象的行为特性:

// 常用标志LV_OBJ_FLAG_CLICKABLE      // 对象可以被点击LV_OBJ_FLAG_SCROLLABLE     // 对象可以滚动LV_OBJ_FLAG_HIDDEN         // 隐藏对象LV_OBJ_FLAG_CHECKABLE      // 可以被选中/取消选中// 添加标志lv_obj_add_flag(obj, LV_OBJ_FLAG_CLICKABLE);// 移除标志lv_obj_clear_flag(obj, LV_OBJ_FLAG_CLICKABLE);// 检查是否有某个标志bool is_clickable = lv_obj_has_flag(obj, LV_OBJ_FLAG_CLICKABLE);

7.2 对象状态(State)

状态表示对象当前的情况:

// 常用状态LV_STATE_DEFAULT    // 默认状态LV_STATE_PRESSED    // 被按下LV_STATE_FOCUSED    // 获得焦点LV_STATE_DISABLED   // 禁用状态LV_STATE_CHECKED    // 被选中// 可以组合多个状态LV_STATE_PRESSED | LV_STATE_FOCUSED  // 按下且获得焦点

八、对象的事件:让对象有"反应"

8.1 事件处理的基本结构

// 事件回调函数,处理事件的行为static void event_handler(lv_event_t *e) {    printf("对象obj被点击了!\n");}// 绑定事件到对象void setup_object_with_events() {    lv_obj_t *obj = lv_obj_create(lv_scr_act());    lv_obj_set_size(obj, 100, 100);    lv_obj_center(obj);    lv_obj_set_style_bg_color(obj,lv_color_hex(0x000000),LV_PART_MAIN);    // 使对象可点击    lv_obj_add_flag(obj, LV_OBJ_FLAG_CLICKABLE);    // 绑定点击事件    lv_obj_add_event_cb(obj, event_handler, LV_EVENT_CLICKED, NULL);}
image-20260120145417242

8.2 常用事件类型

// 输入设备事件LV_EVENT_PRESSED        // 对象被按下LV_EVENT_CLICKED        // 对象被点击(按下后释放)LV_EVENT_LONG_PRESSED   // 长按LV_EVENT_VALUE_CHANGED  // 值改变(如滑块拖动)// 绘图事件LV_EVENT_DRAW_MAIN      // 主绘图阶段LV_EVENT_DRAW_POST      // 后绘图阶段// 其他事件LV_EVENT_DELETE         // 对象被删除LV_EVENT_SIZE_CHANGED   // 大小改变

九、对象样式:让对象更"漂亮"

9.1 样式的两种设置方式

// 方式1:直接设置样式(快速简单)lv_obj_set_style_bg_color(obj, lv_color_hex(0xFF0000), LV_PART_MAIN);// 方式2:创建样式对象(可以复用)static lv_style_t my_style;  // 定义样式lv_style_init(&my_style);    // 初始化样式lv_style_set_bg_color(&my_style, lv_color_hex(0xFF0000));  // 设置背景色lv_style_set_radius(&my_style, 10);  // 设置圆角// 应用样式到对象lv_obj_add_style(obj, &my_style, LV_PART_MAIN);

9.2 理解selector参数

selector(选择器)决定了样式应用到对象的哪个部分,在什么状态下生效。

  1. 1. 对象部件(Part)
    // 常用部件(Part)LV_PART_MAIN         // 主体部分(所有对象都有)LV_PART_KNOB         // 旋钮/手柄部分(滑块、开关等)LV_PART_INDICATOR    // 指示器/进度部分(进度条、滑块等)LV_PART_SCROLLBAR    // 滚动条部分(带滚动的容器)LV_PART_CURSOR       // 光标部分(文本框光标)LV_PART_SELECTED     // 选中部分(列表项选中状态)LV_PART_ITEMS        // 项目部分(表格、列表的单元格)LV_PART_TICKS        // 刻度部分(图表、仪表的刻度线)
  2. 2. 对象状态(State)
    // 常用状态LV_STATE_DEFAULT    // 默认状态LV_STATE_PRESSED    // 被按下LV_STATE_FOCUSED    // 获得焦点LV_STATE_DISABLED   // 禁用状态LV_STATE_CHECKED    // 被选中// 可以组合多个状态LV_STATE_PRESSED | LV_STATE_FOCUSED  // 按下且获得焦点

示例

// 设置按钮默认状态的背景色lv_obj_set_style_bg_color(按钮, 蓝色, LV_PART_MAIN | LV_STATE_DEFAULT);// 设置按钮按下时的背景色lv_obj_set_style_bg_color(按钮, 红色, LV_PART_MAIN | LV_STATE_PRESSED);// 设置按钮禁用时的背景色lv_obj_set_style_bg_color(按钮, 灰色, LV_PART_MAIN | LV_STATE_DISABLED);

简单理解:selector就像在说"我要给这个按钮的[主要部分],在[按下状态时]设置背景色"。

9.3 常用的样式属性

// 背景相关lv_obj_set_style_bg_color(obj, color, selector);     // 背景颜色lv_obj_set_style_bg_opa(obj, opa, selector);         // 背景透明度(0-255)// 边框相关lv_obj_set_style_border_width(obj, width, selector);  // 边框宽度lv_obj_set_style_border_color(obj, color, selector);  // 边框颜色// 文字相关lv_obj_set_style_text_color(obj, color, selector);    // 文字颜色lv_obj_set_style_text_font(obj, font, selector);      // 文字字体// 位置相关lv_obj_set_style_pad_all(obj, value, selector);       // 所有方向内边距lv_obj_set_style_pad_top(obj, value, selector);       // 上内边距

十、LVGL的核心思想:一切皆对象

10.1 继承关系图

lv_obj(基础对象,所有控件的"祖先")├── lv_btn(按钮)├── lv_label(标签)├── lv_slider(滑块)├── lv_switch(开关)├── lv_img(图片)├── lv_bar(进度条)└── ...(其他所有控件)

10.2 验证继承关系

void test_inheritance() {    // 创建一个基础对象    lv_obj_t *obj = lv_obj_create(lv_scr_act());    // 创建一个按钮(按钮继承自基础对象)    lv_obj_t *btn = lv_btn_create(lv_scr_act());    // 它们都可以使用相同的函数设置属性    lv_obj_set_size(obj, 100, 50);    lv_obj_set_size(btn, 100, 50);  // 按钮也有size属性!    lv_obj_set_pos(obj, 50, 50);    lv_obj_set_pos(btn, 50, 150);   // 按钮也有pos属性!    lv_obj_set_style_bg_color(obj, lv_color_hex(0x000000), LV_PART_MAIN);    lv_obj_set_style_bg_color(btn, lv_color_hex(0xFF0000), LV_PART_MAIN);  // 按钮也有背景色!}

要点:因为按钮继承自基础对象,所以按钮拥有基础对象的所有功能

十一、实践项目:创建一个简单的控制面板

11.1 项目需求

创建一个包含以下元素的控制面板:

  1. 1. 一个黑色背景的容器
  2. 2. 三个不同颜色的方块
  3. 3. 点击方块会改变颜色

11.2 完整代码实现

#include "lvgl.h"// 事件处理函数static void square_clicked(lv_event_t *e) {    lv_obj_t *obj = lv_event_get_target(e);    // 随机改变颜色    uint8_t r = rand() % 256;    uint8_t g = rand() % 256;    uint8_t b = rand() % 256;    lv_color_t new_color = lv_color_make(r, g, b);    lv_obj_set_style_bg_color(obj, new_color, LV_PART_MAIN);}void create_control_panel() {    // 创建黑色背景容器    lv_obj_t *container = lv_obj_create(lv_scr_act());    lv_obj_set_size(container, LV_PCT(80), LV_PCT(80));    lv_obj_center(container);    // 设置容器样式    lv_obj_set_style_bg_color(container, lv_color_hex(0x000000), LV_PART_MAIN);    lv_obj_set_style_pad_all(container, 20, LV_PART_MAIN);    lv_obj_set_style_radius(container, 10, LV_PART_MAIN);    // 创建三个方块    lv_obj_t *square1 = lv_obj_create(container);    lv_obj_t *square2 = lv_obj_create(container);    lv_obj_t *square3 = lv_obj_create(container);    // 设置方块大小    lv_obj_set_size(square1, 80, 80);    lv_obj_set_size(square2, 80, 80);    lv_obj_set_size(square3, 80, 80);    // 设置初始颜色    lv_obj_set_style_bg_color(square1, lv_color_hex(0xFF0000), LV_PART_MAIN);    lv_obj_set_style_bg_color(square2, lv_color_hex(0x00FF00), LV_PART_MAIN);    lv_obj_set_style_bg_color(square3, lv_color_hex(0x0000FF), LV_PART_MAIN);    // 去除方块的内边距、边框、圆角    lv_obj_set_style_pad_all(square1, 0, LV_PART_MAIN);    lv_obj_set_style_border_width(square1, 0, LV_PART_MAIN);    lv_obj_set_style_radius(square1, 0, LV_PART_MAIN);    lv_obj_set_style_pad_all(square2, 0, LV_PART_MAIN);    lv_obj_set_style_border_width(square2, 0, LV_PART_MAIN);    lv_obj_set_style_radius(square2, 0, LV_PART_MAIN);    lv_obj_set_style_pad_all(square3, 0, LV_PART_MAIN);    lv_obj_set_style_border_width(square3, 0, LV_PART_MAIN);    lv_obj_set_style_radius(square3, 0, LV_PART_MAIN);    // 使方块可点击    lv_obj_add_flag(square1, LV_OBJ_FLAG_CLICKABLE);    lv_obj_add_flag(square2, LV_OBJ_FLAG_CLICKABLE);    lv_obj_add_flag(square3, LV_OBJ_FLAG_CLICKABLE);    // 绑定点击事件    lv_obj_add_event_cb(square1, square_clicked, LV_EVENT_CLICKED, NULL);    lv_obj_add_event_cb(square2, square_clicked, LV_EVENT_CLICKED, NULL);    lv_obj_add_event_cb(square3, square_clicked, LV_EVENT_CLICKED, NULL);    // 水平排列方块    lv_obj_align(square1, LV_ALIGN_TOP_MID, -90, 20);    lv_obj_align(square2, LV_ALIGN_TOP_MID, 0, 20);    lv_obj_align(square3, LV_ALIGN_TOP_MID, 90, 20);}
Recording 2026-01-20 170438

十三、学习总结

通过本章学习,你已经掌握了:

  1. 1. ✅ 对象的创建lv_obj_create()
  2. 2. ✅ 大小和位置set_size()set_pos()
  3. 3. ✅ 层级关系:先创建的在下面,父子关系
  4. 4. ✅ 对齐方式lv_obj_align()的18种对齐
  5. 5. ✅ 盒子模型:理解padding、border、outline
  6. 6. ✅ 对象标志:控制对象行为的开关
  7. 7. ✅ 事件处理:让对象响应用户操作
  8. 8. ✅ 样式系统:控制对象的外观
  9. 9. ✅ 核心思想:一切皆对象,继承关系

记住:基础对象是LVGL的基石,掌握好它,学习其他控件会事半功倍!


快速参考卡片

// 创建和基本设置lv_obj_t *obj = lv_obj_create(parent);lv_obj_set_size(obj, width, height);lv_obj_set_pos(obj, x, y);lv_obj_center(obj);// 样式设置lv_obj_set_style_bg_color(obj, color, LV_PART_MAIN);lv_obj_set_style_radius(obj, radius, LV_PART_MAIN);// 事件处理lv_obj_add_flag(obj, LV_OBJ_FLAG_CLICKABLE);lv_obj_add_event_cb(obj, handler, LV_EVENT_CLICKED, NULL);

往期推荐:

LVGL应用编程:交互UI设计

LVGL应用编程:创建第一个LVGL工程(Hello World!)

LVGL应用编程入门:从零开始打造炫酷嵌入式界面

Linux系统编程完整指南

最新文章

随机文章

基本 文件 流程 错误 SQL 调试
  1. 请求信息 : 2026-02-08 06:07:10 HTTP/2.0 GET : https://f.mffb.com.cn/a/466193.html
  2. 运行时间 : 0.231419s [ 吞吐率:4.32req/s ] 内存消耗:4,772.09kb 文件加载:140
  3. 缓存信息 : 0 reads,0 writes
  4. 会话信息 : SESSION_ID=4be98502f2e0906355c41f49a6446c86
  1. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/public/index.php ( 0.79 KB )
  2. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/autoload.php ( 0.17 KB )
  3. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/composer/autoload_real.php ( 2.49 KB )
  4. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/composer/platform_check.php ( 0.90 KB )
  5. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/composer/ClassLoader.php ( 14.03 KB )
  6. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/composer/autoload_static.php ( 4.90 KB )
  7. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-helper/src/helper.php ( 8.34 KB )
  8. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-validate/src/helper.php ( 2.19 KB )
  9. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/helper.php ( 1.47 KB )
  10. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/stubs/load_stubs.php ( 0.16 KB )
  11. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Exception.php ( 1.69 KB )
  12. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-container/src/Facade.php ( 2.71 KB )
  13. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/symfony/deprecation-contracts/function.php ( 0.99 KB )
  14. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/symfony/polyfill-mbstring/bootstrap.php ( 8.26 KB )
  15. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/symfony/polyfill-mbstring/bootstrap80.php ( 9.78 KB )
  16. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/symfony/var-dumper/Resources/functions/dump.php ( 1.49 KB )
  17. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-dumper/src/helper.php ( 0.18 KB )
  18. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/symfony/var-dumper/VarDumper.php ( 4.30 KB )
  19. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/App.php ( 15.30 KB )
  20. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-container/src/Container.php ( 15.76 KB )
  21. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/psr/container/src/ContainerInterface.php ( 1.02 KB )
  22. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/provider.php ( 0.19 KB )
  23. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Http.php ( 6.04 KB )
  24. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-helper/src/helper/Str.php ( 7.29 KB )
  25. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Env.php ( 4.68 KB )
  26. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/common.php ( 0.03 KB )
  27. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/helper.php ( 18.78 KB )
  28. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Config.php ( 5.54 KB )
  29. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/app.php ( 0.95 KB )
  30. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/cache.php ( 0.78 KB )
  31. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/console.php ( 0.23 KB )
  32. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/cookie.php ( 0.56 KB )
  33. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/database.php ( 2.48 KB )
  34. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/facade/Env.php ( 1.67 KB )
  35. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/filesystem.php ( 0.61 KB )
  36. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/lang.php ( 0.91 KB )
  37. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/log.php ( 1.35 KB )
  38. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/middleware.php ( 0.19 KB )
  39. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/route.php ( 1.89 KB )
  40. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/session.php ( 0.57 KB )
  41. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/trace.php ( 0.34 KB )
  42. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/view.php ( 0.82 KB )
  43. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/event.php ( 0.25 KB )
  44. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Event.php ( 7.67 KB )
  45. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/service.php ( 0.13 KB )
  46. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/AppService.php ( 0.26 KB )
  47. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Service.php ( 1.64 KB )
  48. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Lang.php ( 7.35 KB )
  49. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/lang/zh-cn.php ( 13.70 KB )
  50. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/initializer/Error.php ( 3.31 KB )
  51. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/initializer/RegisterService.php ( 1.33 KB )
  52. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/services.php ( 0.14 KB )
  53. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/service/PaginatorService.php ( 1.52 KB )
  54. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/service/ValidateService.php ( 0.99 KB )
  55. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/service/ModelService.php ( 2.04 KB )
  56. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-trace/src/Service.php ( 0.77 KB )
  57. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Middleware.php ( 6.72 KB )
  58. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/initializer/BootService.php ( 0.77 KB )
  59. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/Paginator.php ( 11.86 KB )
  60. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-validate/src/Validate.php ( 63.20 KB )
  61. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/Model.php ( 23.55 KB )
  62. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/model/concern/Attribute.php ( 21.05 KB )
  63. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/model/concern/AutoWriteData.php ( 4.21 KB )
  64. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/model/concern/Conversion.php ( 6.44 KB )
  65. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/model/concern/DbConnect.php ( 5.16 KB )
  66. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/model/concern/ModelEvent.php ( 2.33 KB )
  67. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/model/concern/RelationShip.php ( 28.29 KB )
  68. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-helper/src/contract/Arrayable.php ( 0.09 KB )
  69. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-helper/src/contract/Jsonable.php ( 0.13 KB )
  70. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/model/contract/Modelable.php ( 0.09 KB )
  71. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Db.php ( 2.88 KB )
  72. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/DbManager.php ( 8.52 KB )
  73. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Log.php ( 6.28 KB )
  74. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Manager.php ( 3.92 KB )
  75. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/psr/log/src/LoggerTrait.php ( 2.69 KB )
  76. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/psr/log/src/LoggerInterface.php ( 2.71 KB )
  77. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Cache.php ( 4.92 KB )
  78. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/psr/simple-cache/src/CacheInterface.php ( 4.71 KB )
  79. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-helper/src/helper/Arr.php ( 16.63 KB )
  80. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/cache/driver/File.php ( 7.84 KB )
  81. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/cache/Driver.php ( 9.03 KB )
  82. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/contract/CacheHandlerInterface.php ( 1.99 KB )
  83. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/Request.php ( 0.09 KB )
  84. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Request.php ( 55.78 KB )
  85. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/middleware.php ( 0.25 KB )
  86. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Pipeline.php ( 2.61 KB )
  87. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-trace/src/TraceDebug.php ( 3.40 KB )
  88. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/middleware/SessionInit.php ( 1.94 KB )
  89. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Session.php ( 1.80 KB )
  90. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/session/driver/File.php ( 6.27 KB )
  91. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/contract/SessionHandlerInterface.php ( 0.87 KB )
  92. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/session/Store.php ( 7.12 KB )
  93. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Route.php ( 23.73 KB )
  94. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/route/RuleName.php ( 5.75 KB )
  95. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/route/Domain.php ( 2.53 KB )
  96. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/route/RuleGroup.php ( 22.43 KB )
  97. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/route/Rule.php ( 26.95 KB )
  98. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/route/RuleItem.php ( 9.78 KB )
  99. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/route/app.php ( 1.72 KB )
  100. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/facade/Route.php ( 4.70 KB )
  101. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/route/dispatch/Controller.php ( 4.74 KB )
  102. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/route/Dispatch.php ( 10.44 KB )
  103. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/controller/Index.php ( 4.81 KB )
  104. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/BaseController.php ( 2.05 KB )
  105. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/facade/Db.php ( 0.93 KB )
  106. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/connector/Mysql.php ( 5.44 KB )
  107. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/PDOConnection.php ( 52.47 KB )
  108. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/Connection.php ( 8.39 KB )
  109. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/ConnectionInterface.php ( 4.57 KB )
  110. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/builder/Mysql.php ( 16.58 KB )
  111. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/Builder.php ( 24.06 KB )
  112. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/BaseBuilder.php ( 27.50 KB )
  113. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/Query.php ( 15.71 KB )
  114. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/BaseQuery.php ( 45.13 KB )
  115. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/TimeFieldQuery.php ( 7.43 KB )
  116. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/AggregateQuery.php ( 3.26 KB )
  117. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/ModelRelationQuery.php ( 20.07 KB )
  118. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/ParamsBind.php ( 3.66 KB )
  119. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/ResultOperation.php ( 7.01 KB )
  120. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/WhereQuery.php ( 19.37 KB )
  121. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/JoinAndViewQuery.php ( 7.11 KB )
  122. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/TableFieldInfo.php ( 2.63 KB )
  123. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/Transaction.php ( 2.77 KB )
  124. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/log/driver/File.php ( 5.96 KB )
  125. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/contract/LogHandlerInterface.php ( 0.86 KB )
  126. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/log/Channel.php ( 3.89 KB )
  127. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/event/LogRecord.php ( 1.02 KB )
  128. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-helper/src/Collection.php ( 16.47 KB )
  129. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/facade/View.php ( 1.70 KB )
  130. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/View.php ( 4.39 KB )
  131. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Response.php ( 8.81 KB )
  132. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/response/View.php ( 3.29 KB )
  133. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Cookie.php ( 6.06 KB )
  134. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-view/src/Think.php ( 8.38 KB )
  135. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/contract/TemplateHandlerInterface.php ( 1.60 KB )
  136. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-template/src/Template.php ( 46.61 KB )
  137. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-template/src/template/driver/File.php ( 2.41 KB )
  138. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-template/src/template/contract/DriverInterface.php ( 0.86 KB )
  139. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/runtime/temp/067d451b9a0c665040f3f1bdd3293d68.php ( 11.98 KB )
  140. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-trace/src/Html.php ( 4.42 KB )
  1. CONNECT:[ UseTime:0.000386s ] mysql:host=127.0.0.1;port=3306;dbname=f_mffb;charset=utf8mb4
  2. SHOW FULL COLUMNS FROM `fenlei` [ RunTime:0.000602s ]
  3. SELECT * FROM `fenlei` WHERE `fid` = 0 [ RunTime:0.000292s ]
  4. SELECT * FROM `fenlei` WHERE `fid` = 63 [ RunTime:0.000269s ]
  5. SHOW FULL COLUMNS FROM `set` [ RunTime:0.000546s ]
  6. SELECT * FROM `set` [ RunTime:0.000215s ]
  7. SHOW FULL COLUMNS FROM `article` [ RunTime:0.000516s ]
  8. SELECT * FROM `article` WHERE `id` = 466193 LIMIT 1 [ RunTime:0.057261s ]
  9. UPDATE `article` SET `lasttime` = 1770502030 WHERE `id` = 466193 [ RunTime:0.001070s ]
  10. SELECT * FROM `fenlei` WHERE `id` = 65 LIMIT 1 [ RunTime:0.003321s ]
  11. SELECT * FROM `article` WHERE `id` < 466193 ORDER BY `id` DESC LIMIT 1 [ RunTime:0.005592s ]
  12. SELECT * FROM `article` WHERE `id` > 466193 ORDER BY `id` ASC LIMIT 1 [ RunTime:0.009287s ]
  13. SELECT * FROM `article` WHERE `id` < 466193 ORDER BY `id` DESC LIMIT 10 [ RunTime:0.015572s ]
  14. SELECT * FROM `article` WHERE `id` < 466193 ORDER BY `id` DESC LIMIT 10,10 [ RunTime:0.000925s ]
  15. SELECT * FROM `article` WHERE `id` < 466193 ORDER BY `id` DESC LIMIT 20,10 [ RunTime:0.011286s ]
0.232899s