仓库

桌面背景切换

桌面背景放弃

个性
  1. 反对小部件追加
  2. 反对获取小部件的数量
  3. 反对获取以后小部件的索引和小局部地址
  4. 反对查问给定的小部件索引
  5. 反对设置首页小部件
  6. 反对小部件移除
  7. 反对背景图片是否可滑动切换 !!!
#ifndef MAINWINDOW_H#define MAINWINDOW_H#include <QWidget>#include <QScrollArea>#include <QHBoxLayout>#include <QScroller>#include <QTimer>#include <QPropertyAnimation>/* 滑动窗口 * 1. 反对小部件追加 * 2. 反对获取小部件的数量 * 3. 反对获取以后小部件的索引和小局部地址 * 4. 反对查问给定的小部件索引 * 5. 反对设置首页小部件 * 6. 反对小部件移除 * 7. 反对背景图片是否可滑动切换 !!! *     SliderWidget(QWidget *parent = nullptr, const QString &picture = ""); *     当 picture 传入图片地址时, 背景图片将始终放弃不可切换 */class SliderWidget : public QWidget{    Q_OBJECTpublic:    SliderWidget(QWidget *parent = nullptr, const QString &picture = "");    ~SliderWidget();    int addWidget(QWidget *page);    int count() const;    int currentIndex() const;    QWidget *currentWidget() const;    int indexOf(QWidget *widget) const;public slots:    void setCurrentIndex(int index);    void setCurrentWidget(QWidget *widget);    void removeWidget(int index);    void removeWidget(QWidget *widget);protected:    void resizeEvent(QResizeEvent *ev) override;protected slots:    void onScrollerStateChanged(QScroller::State state);    void onSliderTimerTimeout();signals:    void currentChanged(int index);private:    void initUi();    void initCtrl();    void updateIndicator(int index);private:    QWidget *m_pMainWidget;    QScrollArea *m_pScrollArea;    QHBoxLayout *m_pMainLayout;    QWidget *m_pIndicatorWidget;    QHBoxLayout *m_pIndicatorLayout;    QPropertyAnimation *m_pAnimation;    QTimer *m_pSlidingTimer;    bool m_sliderFlag = false;    int m_sliderPressedValue = 0;    int m_sliderReleaseValue = 0;    int m_curPageIndex = -1;    int m_nextPageIndex = -1;    QString m_background;};#endif // MAINWINDOW_H