2011-10-19 40 views

回答

1

您需要测试手指是否在mousePress和mouseRelease之间移动。你可以提取出版社的位置,所以如果你把它存储在一个中间变量中,然后根据mouseRelease的位置(比如使用QPoint :: manhattanLength())进行测试,你可以判断手指是否移动了。如果有,用户正在滚动,如果没有,他们正在点击。

编辑:看看你已经链接到的代码,他们已经在做上述。我们能否再看到一些你的重塑?

#include <QScroller> 
... 
QScroller::grabGesture(myListWidget, QScroller::LeftMouseButtonGesture); 

对于触摸屏使用TouchGesture代替LeftMouseButtonGesture

+0

:我的代码包含QListWidget,我将这个ListWidget添加到QsKineticScroller :: enableKineticScrollFor,并在我的ListWidget scrollMode中设置为ScrollPerPixel水平和垂直。 – user662285

4

从QT5开始,因为这是这么简单。

如果物件不继承QAbstractScrollArea(例如QWebView):

QScrollArea *scrollArea = new QScrollArea; 
scrollArea->setWidget(myWidget); 
QScroller::grabGesture(scrollArea, QScroller::LeftMouseButtonGesture); 

一定要小部件尺寸调整到其内容的大小。