我发现QScroller和QScrollBar之间存在冲突。所以我有一个带垂直滚动条的QScrollArea。我还激活了一个QScroller,它允许我用左键单击按钮进行动态滚动。但是我不能再抓住滚动条了。因为一旦我抓住它,QScroller开始接管。 这是我添加QScroller的方式:
QScroller::grabGesture(mArea, QScroller::LeftMouseButtonGesture) ;
我知道如何解决冲突?
答案 0 :(得分:2)
我有同样的问题。
将grabGesture
应用于QScrollArea
的视口而不是整个小部件可以避免这种情况:
QScroller::grabGesture(mArea->viewport(), QScroller::LeftMouseButtonGesture) ;
答案 1 :(得分:-1)
我有一个解决方案。我重新定义了QScrollBar的enterEvent和leaveEvent,使用QScroller :: ungrabGesture()QScroller :: grabGesture()取消激活并激活QScroller。 它现在工作正常。此外,事件过滤器也可以完成这项工作。