直接上代码,以qlistwidget为例
//这里对viewport()设置触摸手势,避免和滚动条区域冲突
QScroller::grabGesture(ui.listWidget->viewport(), QScroller::LeftMouseButtonGesture); //鼠标左键触摸, 如果想仅支持触摸屏下触摸可以使用QScroller::TouchGesture
auto verticalScrollBar = ui.listWidget->verticalScrollBar(); //获取垂直滚动条
ui.listWidget->setVerticalScrollMode(QAbstractItemView::ScrollPerPixel); //设置按像素滚动
verticalScrollBar->setSingleStep(5); //设置滚动步长为5px
所有从QAbstractScrollArea派生的Qt类(qlistwidget、qtablewidget 、qscrollarea等)都可以使用上述方法实现手势触摸支持。