【Qt】 自定义组件_滑动窗口
仓库
桌面背景切换
桌面背景保持【【Qt】 自定义组件_滑动窗口】
特性
- 支持小部件追加
- 支持获取小部件的数量
- 支持获取当前小部件的索引和小部分地址
- 支持查询给定的小部件索引
- 支持设置首页小部件
- 支持小部件移除
- 支持背景图片是否可滑动切换 !!!
#ifndef MAINWINDOW_H
#define MAINWINDOW_H#include
#include
#include
#include
#include
#include /* 滑动窗口
* 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 = https://www.it610.com/article/0;
int m_sliderReleaseValue = 0;
int m_curPageIndex = -1;
int m_nextPageIndex = -1;
QString m_background;
};
#endif // MAINWINDOW_H
推荐阅读
- 宽容谁
- 我要做大厨
- 增长黑客的海盗法则
- 画画吗()
- 2019-02-13——今天谈梦想()
- 远去的风筝
- 三十年后的广场舞大爷
- 叙述作文
- 20190302|20190302 复盘翻盘
- 学无止境,人生还很长