QScroller和QScrollBar之间的qt冲突

时间:2014-05-15 10:37:54

标签: c++ qt scrollbar qscrollarea

我发现QScroller和QScrollBar之间存在冲突。所以我有一个带垂直滚动条的QScrollArea。我还激活了一个QScroller,它允许我用左键单击按钮进行动态滚动。但是我不能再抓住滚动条了。因为一旦我抓住它,QScroller开始接管。 这是我添加QScroller的方式:

QScroller::grabGesture(mArea, QScroller::LeftMouseButtonGesture) ; 

我知道如何解决冲突?

2 个答案:

答案 0 :(得分:2)

我有同样的问题。 将grabGesture应用于QScrollArea的视口而不是整个小部件可以避免这种情况:

QScroller::grabGesture(mArea->viewport(), QScroller::LeftMouseButtonGesture) ; 

答案 1 :(得分:-1)

我有一个解决方案。我重新定义了QScrollBar的enterEvent和leaveEvent,使用QScroller :: ungrabGesture()QScroller :: grabGesture()取消激活并激活QScroller。 它现在工作正常。此外,事件过滤器也可以完成这项工作。