- A+
SlidingStackedWidget(滑动堆叠窗口部件)
SlidingStackedWidget(滑动堆叠窗口部件)是Qt中的一个自定义部件,它是对QStackedWidget(堆叠窗口部件)的扩展和增强。SlidingStackedWidget允许您在切换堆叠页面时添加滑动效果,为应用程序提供平滑且带有过渡效果的界面切换。
与QStackedWidget相似,SlidingStackedWidget可以管理多个子页面,但它还引入了以下额外的功能:
1.切换效果:SlidingStackedWidget支持水平和垂直两种过渡效果。您可以选择从左到右、从右到左、从上到下或者从下到上的滑动方向。
2.过渡速度和时间:您可以调整滑动过渡的速度和持续时间,以获得满意的视觉效果。
3.动态切换:除了静态地在不同页面之间切换外,SlidingStackedWidget还提供了一些方法,使您可以根据特定条件动态地切换页面。例如,您可以使用slideInNext()
和slideInPrev()
方法在当前页面的基础上进行逐步滑动。
使用SlidingStackedWidget的一般步骤如下:
1.包含第三方源码
- include(SlidingStackedWidget/SlidingStackedWidget.pri)
2.包含头文件:
- #include "slidingstackedwidget.h"
3.创建SlidingStackedWidget对象:
- SlidingStackedWidget *stackedWidget = new SlidingStackedWidget(this);
4.添加子页面:
- QWidget *page1 = new QWidget;
- QWidget *page2 = new QWidget;
- stackedWidget->addWidget(page1);
- stackedWidget->addWidget(page2);
5.切换页面:
- // 静态切换
- stackedWidget->setCurrentIndex(index);
- // 动态切换
- stackedWidget->slideInNext();
- stackedWidget->slideInPrev();
6.设置其他参数
- //! Set animation speed
- void setSpeed(int speed);
- //! Set easing curve
- void setAnimation(enum QEasingCurve::Type animationtype);
- //! Change positioning mode
- void setVerticalMode(bool vertical = true);
- //! Enables page wrap for \c slideInNext and \c slideInPrev
- void setWrap(bool wrap);
- //! Slide to next page
- bool slideInNext();
- //! Slide to previous page
- bool slideInPrev();
- //! Slide to page x
- void slideInIdx(int idx, enum t_direction direction=AUTOMATIC);
- //! Slide to page with widget
- void slideInWgt(QWidget * widget, enum t_direction direction=AUTOMATIC);
例子工程
链接:https://pan.baidu.com/s/1FY3pxIqokvbQlbaaMYKA9Q?pwd=n73m
效果图
https://kgithub.com/ThePBone/SlidingStackedWidget/blob/master/screenshots/demo.gif?raw=true
引用
https://github.com/ThePBone/SlidingStackedWidget