我已经实现了手指滚动到我的 QListWidget 之一。我参考了 http://www.developer.nokia.com/Community/Wiki/Qt_Kinetic_scrolling_-_from_idea_to_implementation
现在的问题是当我向上和向下滚动我的列表时 QListWidget 的 on_current_row_changed 事件被触发。我如何才能避免在点击时出现这种情况,它应该表现得像点击而不是在滚动上。
从 Qt5 开始,这很简单:
#include <QScroller>
...
QScroller::grabGesture(myListWidget, QScroller::LeftMouseButtonGesture);
Run Code Online (Sandbox Code Playgroud)
对于触摸屏,请使用TouchGesture代替LeftMouseButtonGesture。
如果小部件不继承QAbstractScrollArea(例如QWebView):
QScrollArea *scrollArea = new QScrollArea;
scrollArea->setWidget(myWidget);
QScroller::grabGesture(scrollArea, QScroller::LeftMouseButtonGesture);
Run Code Online (Sandbox Code Playgroud)
请务必将小部件调整为其内容大小。