QT QScroller拖拽使用方法

在开发中遇到QListWidget 实现拖拽的回弹效果,拖拽的距离太大,修改拖拽的距离

继承QListWidget

 

QScroller *scroller;

QScrollerProperties scrPrt ;

ListWidget::ListWidget(QWidget *parent) :QListWidget(parent)

{

   scroller = QScroller::scroller(this)  //创建scroller;

   scroller->grabGesture(this,QScroller::LeftMouseButtonGesture);  //把ListWidget添加在scroller中

   scrPrt = scroller->scrollerPropertire();  //QScrollerProperties类存储QScroller的设置

   scrPrt.setScrollMetric(QScrollerProperties::OvershootDragResistanceFactor,0.1);   0.1=100/1000  总共1000个像素,只允许拖拽100个像素

   scroller->setScrollerProperties(scrPrt);

}

QScrollerQt 框架提供的一个用于滚动区域的高级滚动条类,它提供了比 QScrollBar 更高级的功能,例如滚动平滑、惯性滚动、鼠标滚动缩放等等。下面是 QScroller 的详细使用方法: 1. 引入头文件: ``` #include <QScroller> ``` 2. 获取滚动区域的 QScrollArea 对象: ``` QScrollArea *scrollArea = new QScrollArea(this); ``` 3. 获取滚动区域的 QWidget 对象: ``` QWidget *scrollWidget = new QWidget(); scrollArea->setWidget(scrollWidget); ``` 4. 启用 QScroller: ``` QScroller::grabGesture(scrollWidget, QScroller::LeftMouseButtonGesture); ``` 5. 设置 QScroller 的属性: ``` QScrollerProperties sp = QScroller::scroller(scrollWidget)->scrollerProperties(); sp.setScrollMetric(QScrollerProperties::ScrollMetric::VerticalOvershootPolicy, QScrollerProperties::OvershootAlwaysOff); QScroller::scroller(scrollWidget)->setScrollerProperties(sp); ``` 其中,setScrollMetric() 函数用于设置 QScroller 的属性,例如设置垂直滚动超出区域时的处理方式,这里使用的是 QScrollerProperties::OvershootAlwaysOff 表示总是关闭超出区域的回弹效果。 6. 完成,现在 QScroller 就可以用于滚动区域了。 总结: QScroller使用方法比较简单,只需要获取滚动区域的 QScrollArea 和 QWidget 对象,然后启用 QScroller 并设置其属性即可。需要注意的是,QScroller 默认只支持鼠标左键的手势滚动,如果需要支持其他手势,可以使用 QScroller::grabGesture() 函数进行设置。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值