效果图

基于QPropertyAnimation实现
代码部分
//设置滑动条动画
m_scrollAnimation=new QPropertyAnimation;
m_scrollAnimation->setTargetObject(this);
m_scrollAnimation->setPropertyName("value");
m_scrollAnimation->setEasingCurve(QEasingCurve::OutQuint);
m_scrollAnimation->setDuration(1000);
m_targetValue =value();
void SmoothScrollBar::setValue(int value)
{
m_scrollAnimation->stop();
m_scrollAnimation->setStartValue(this->value());
m_scrollAnimation->setEndValue(value);
m_scrollAnimation->start();
}
void SmoothScrollBar::scroll(int value)
{
m_targetValue -= value;
setValue(m_targetValue);
}
void SmoothScrollBar::mousePressEvent(QMouseEvent *e)
{
m_scrollAnimation->stop();
QScrollBar::mousePressEvent(e);
m_targetValue = value();
}
void SmoothScrollBar::mouseReleaseEvent(QMouseEvent *e)
{
m_scrollAnimation->stop();
QScrollBar::mouseReleaseEvent(e);
m_targetValue = value();
}
void SmoothScrollBar::mouseMoveEvent(QMouseEvent *e)
{
m_scrollAnimation->stop();
QScrollBar::mouseMoveEvent(e);
m_targetValue = value();
}
源码传送门



![Gradio入门到进阶全网最详细教程[一]:快速搭建AI算法可视化部署演示(侧重项目搭建和案例分享)](https://img-blog.csdnimg.cn/img_convert/99c8ae193184d17822e9b0901e190e45.jpeg)


![[2020.3.13]通过Android反编译找出问题根因](https://img-blog.csdnimg.cn/647900bc4c8d4120a8c90377d0ee0ca1.png)












