乐于分享
好东西不私藏

Qt 页面切换动画完全指南:让你的软件拥有媲美 WPS 的切换体验

Qt 页面切换动画完全指南:让你的软件拥有媲美 WPS 的切换体验

一个软件是否“高级”,往往不是看界面有多漂亮,而是看页面切换是否自然。

很多 Qt 项目都有多个页面,例如:登录页 → 主界面、首页 → 参数配置、参数配置 → 历史记录、设备列表 → 设备详情。遗憾的是,大部分 Qt 项目都是这样切换的

ui->stackedWidget->setCurrentIndex(1);

运行效果:第一页瞬间消失,第二页突然出现,整个页面像“闪现”一样,没有任何过渡。而真正优秀的软件,比如 Qt Creator、WPS、腾讯会议、微信 PC 版,页面切换都带着细腻的动画:淡入淡出、左右滑动、缩放、甚至组合效果。这些动画不仅提升美观,更重要的是告诉用户:页面正在发生变化,而不是凭空跳转

今天我们就用 Qt 实现一套企业级页面切换动画,让你的 QStackedWidget 瞬间拥有高级感。

一、为什么推荐 QStackedWidget?

Qt 官方提供的 QStackedWidget 是管理多页面的标准容器,结构非常清晰:

MainWindow└── QStackedWidget      ├── LoginPage      ├── HomePage      ├── SettingPage      └── AboutPage
切换页面只需要一行代码:
ui->stackedWidget->setCurrentWidget(ui->pageHome);
缺点也显而易见:完全没有动画。我们的目标就是为它注入灵魂。

二、动画的原理:截图法 vs 属性法

给 QStackedWidget 加动画有两种常用思路:

方案
原理
优点
缺点
截图法
对当前页面截图,用截图的 QLabel 做动画,结束后再真正切换
不受布局影响,随意变形
页面内容更新后会失效,占用额外内存
属性法
直接修改页面的 geometry/pos/opacity 等属性做动画,最后一帧完成切换
真实页面动画,状态保持
受布局管理器限制,需要特殊处理

实际项目推荐:截图法用于复杂布局的过渡,属性法用于简单容器动画。本文将重点介绍属性法,配合 QGraphicsOpacityEffect 实现所有效果。

三、准备工作:为页面创建透明度效果

Qt 的 QWidget 本身没有 opacity 属性,但我们可以借助 QGraphicsOpacityEffect

auto *effect = new QGraphicsOpacityEffect(page);page->setGraphicsEffect(effect);effect->setOpacity(1.0);  // 1.0 完全不透明,0.0 完全透明

之后对 effect 的 opacity 属性做动画即可控制页面显隐。


四、完整 Demo 1:Fade 淡入淡出

这是企业项目最常见的页面动画。效果:旧页面逐渐透明消失,新页面逐渐显现。

核心代码:AnimationHelper 类

// AnimationHelper.h#include<QWidget>#include<QPropertyAnimation>#include<QGraphicsOpacityEffect>#include<QParallelAnimationGroup>class AnimationHelper {public:    // 淡入淡出切换页面    staticvoidfadeSwitch(QWidget *oldPage, QWidget *newPage,                           int duration = 250,                           QEasingCurve curve = QEasingCurve::OutCubic);};
// AnimationHelper.cpp#include"AnimationHelper.h"#include<QGraphicsOpacityEffect>#include<QPropertyAnimation>#include<QParallelAnimationGroup>voidAnimationHelper::fadeSwitch(QWidget *oldPage, QWidget *newPage,                                 int duration, QEasingCurve curve) {    // 为新页面创建透明度效果    auto *newEffect = new QGraphicsOpacityEffect(newPage);    newEffect->setOpacity(0.0);    newPage->setGraphicsEffect(newEffect);    // 如果旧页面有图形效果就复用,否则新建    auto *oldEffect = qobject_cast<QGraphicsOpacityEffect*>(oldPage->graphicsEffect());    if (!oldEffect) {        oldEffect = new QGraphicsOpacityEffect(oldPage);        oldEffect->setOpacity(1.0);        oldPage->setGraphicsEffect(oldEffect);    }    // 旧页面淡出    auto *fadeOut = new QPropertyAnimation(oldEffect, "opacity");    fadeOut->setDuration(duration);    fadeOut->setStartValue(1.0);    fadeOut->setEndValue(0.0);    fadeOut->setEasingCurve(curve);    // 新页面淡入    auto *fadeIn = new QPropertyAnimation(newEffect, "opacity");    fadeIn->setDuration(duration);    fadeIn->setStartValue(0.0);    fadeIn->setEndValue(1.0);    fadeIn->setEasingCurve(curve);    // 并行执行    auto *group = new QParallelAnimationGroup;    group->addAnimation(fadeOut);    group->addAnimation(fadeIn);    // 动画开始前先将新页面显示并置于顶层    newPage->show();    newPage->raise();    QObject::connect(group, &QParallelAnimationGroup::finished, [oldPage, newPage]() {        // 动画结束后确保最终状态        auto *oldEff = qobject_cast<QGraphicsOpacityEffect*>(oldPage->graphicsEffect());        if (oldEff) oldEff->setOpacity(1.0);        auto *newEff = qobject_cast<QGraphicsOpacityEffect*>(newPage->graphicsEffect());        if (newEff) newEff->setOpacity(1.0);        oldPage->hide();  // 隐藏旧页面,避免鼠标穿透    });    group->start(QAbstractAnimation::DeleteWhenStopped);}

使用示例

// 从登录页切换到主页AnimationHelper::fadeSwitch(ui->loginPage, ui->homePage, 250QEasingCurve::OutCubic);
效果:登录页慢慢消失,主页同时显现,整个过程非常自然。

五、完整 Demo 2:Slide 左右滑动

滑动效果像手机 App 一样,页面从屏幕右侧滑入,旧页面向左滑出。

voidAnimationHelper::slideSwitch(QWidget *oldPage, QWidget *newPage,                                  bool rightToLeft, int duration,                                  QEasingCurve curve) {    QWidget *parent = oldPage->parentWidget();    int width = parent ? parent->width() : oldPage->width();    // 新页面初始位置    int startX = rightToLeft ? width : -width;    int endX = 0;    newPage->move(startX, 0);    newPage->show();    newPage->raise();    auto *oldAnim = new QPropertyAnimation(oldPage, "pos");    oldAnim->setDuration(duration);    oldAnim->setStartValue(QPoint(00));    oldAnim->setEndValue(QPoint(rightToLeft ? -width : width, 0));    oldAnim->setEasingCurve(curve);    auto *newAnim = new QPropertyAnimation(newPage, "pos");    newAnim->setDuration(duration);    newAnim->setStartValue(QPoint(startX, 0));    newAnim->setEndValue(QPoint(endX, 0));    newAnim->setEasingCurve(curve);    auto *group = new QParallelAnimationGroup;    group->addAnimation(oldAnim);    group->addAnimation(newAnim);    QObject::connect(group, &QParallelAnimationGroup::finished, [oldPage, newPage]() {        oldPage->hide();        oldPage->move(00);        newPage->move(00);    });    group->start(QAbstractAnimation::DeleteWhenStopped);}

使用:AnimationHelper::slideSwitch(ui->homePage, ui->settingPage, true, 300);右滑返回:AnimationHelper::slideSwitch(ui->settingPage, ui->homePage, false, 300);


六、完整 Demo 3:Zoom 缩放切换

新页面从中心从小变大,旧页面同时淡出或缩小消失。

voidAnimationHelper::zoomSwitch(QWidget *oldPage, QWidget *newPage,                                 int duration, QEasingCurve curve) {    QWidget *parent = oldPage->parentWidget();    QRect finalGeo = parent ? parent->rect() : oldPage->geometry();    QRect startGeo(finalGeo.center().x() - 50, finalGeo.center().y() - 3010060);    newPage->setGeometry(startGeo);    newPage->show();    newPage->raise();    auto *geoAnim = new QPropertyAnimation(newPage, "geometry");    geoAnim->setDuration(duration);    geoAnim->setStartValue(startGeo);    geoAnim->setEndValue(finalGeo);    geoAnim->setEasingCurve(curve);    // 同时旧页面淡出    auto *oldEffect = new QGraphicsOpacityEffect(oldPage);    oldEffect->setOpacity(1.0);    oldPage->setGraphicsEffect(oldEffect);    auto *fadeAnim = new QPropertyAnimation(oldEffect, "opacity");    fadeAnim->setDuration(duration);    fadeAnim->setStartValue(1.0);    fadeAnim->setEndValue(0.0);    fadeAnim->setEasingCurve(curve);    auto *group = new QParallelAnimationGroup;    group->addAnimation(geoAnim);    group->addAnimation(fadeAnim);    QObject::connect(group, &QParallelAnimationGroup::finished, [oldPage, newPage]() {        oldPage->hide();        auto *eff = qobject_cast<QGraphicsOpacityEffect*>(oldPage->graphicsEffect());        if (eff) eff->setOpacity(1.0);        newPage->setGeometry(finalGeo);    });    group->start(QAbstractAnimation::DeleteWhenStopped);}

七、完整 Demo 4:Fade + Slide 组合(企业级最爱)

同时滑动和淡入淡出,视觉流畅且高级。

voidAnimationHelper::fadeSlideSwitch(QWidget *oldPage, QWidget *newPage,                                      bool rightToLeft, int duration) {    QWidget *parent = oldPage->parentWidget();    int width = parent ? parent->width() : oldPage->width();    int startX = rightToLeft ? width : -width;    newPage->move(startX, 0);    newPage->show();    newPage->raise();    // 新页面透明度效果    auto *newEffect = new QGraphicsOpacityEffect(newPage);    newEffect->setOpacity(0.0);    newPage->setGraphicsEffect(newEffect);    // 旧页面透明度效果    auto *oldEffect = new QGraphicsOpacityEffect(oldPage);    oldEffect->setOpacity(1.0);    oldPage->setGraphicsEffect(oldEffect);    // 旧页面:滑出 + 淡出    auto *oldMove = new QPropertyAnimation(oldPage, "pos");    oldMove->setDuration(duration);    oldMove->setStartValue(QPoint(00));    oldMove->setEndValue(QPoint(rightToLeft ? -width/2 : width/20));    auto *oldFade = new QPropertyAnimation(oldEffect, "opacity");    oldFade->setDuration(duration);    oldFade->setStartValue(1.0);    oldFade->setEndValue(0.0);    // 新页面:滑入 + 淡入    auto *newMove = new QPropertyAnimation(newPage, "pos");    newMove->setDuration(duration);    newMove->setStartValue(QPoint(startX, 0));    newMove->setEndValue(QPoint(00));    auto *newFade = new QPropertyAnimation(newEffect, "opacity");    newFade->setDuration(duration);    newFade->setStartValue(0.0);    newFade->setEndValue(1.0);    auto *group = new QParallelAnimationGroup;    group->addAnimation(oldMove);    group->addAnimation(oldFade);    group->addAnimation(newMove);    group->addAnimation(newFade);    QObject::connect(group, &QParallelAnimationGroup::finished, [oldPage, newPage, oldEffect, newEffect]() {        oldPage->hide();        oldPage->move(00);        newPage->move(00);        if (oldEffect) oldEffect->setOpacity(1.0);        if (newEffect) newEffect->setOpacity(1.0);    });    group->start(QAbstractAnimation::DeleteWhenStopped);}

八、企业项目实践:统一动画管理器

将上面所有静态方法放入 AnimationHelper 类中,以后项目中任何地方都可以一行调用:

// 淡入淡出AnimationHelper::fadeSwitch(currentPage, newPage);// 滑动AnimationHelper::slideSwitch(currentPage, newPage, true);// 缩放AnimationHelper::zoomSwitch(currentPage, newPage);// 滑动+淡入AnimationHelper::fadeSlideSwitch(currentPage, newPage, true);

更进一步的封装:我们可以创建一个 PageManager 类,继承 QStackedWidget,重写 setCurrentIndex,内部自动添加动画,这样业务代码完全不需要改动。


九、动画参数推荐表

为了避免动画风格不统一,建议全项目采用以下参数:

场景
时长
推荐缓动曲线
淡入淡出
220ms
OutCubic
左右滑动
260ms
OutCubic
缩放切入
300ms
OutBack
滑动+淡入
280ms
InOutCubic
登录成功过渡
350ms
OutExpo

统一后,整个软件交互会显得非常专业、一致。

十、总结

页面切换动画是提升 Qt 应用质感最有效的方式之一。今天我们讲解了:

  • 截图法与属性法的优劣

  • 四种常用动画的完整实现(Fade、Slide、Zoom、组合)

  • 企业级管理器的封装思路

  • 推荐参数表和避坑指南

你可以直接将文中的 AnimationHelper 类复制到项目中,再配合 QStackedWidget,立刻拥有媲美 WPS 的切换体验。

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