QScroller的详细使用方法
时间: 2023-12-17 21:55:58 浏览: 37
QScroller 是 Qt 框架提供的一个用于滚动区域的高级滚动条类,它提供了比 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() 函数进行设置。
相关推荐
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)