【问题标题】:qt conflict between QScroller and QScrollBarQScroller和QScrollBar之间的qt冲突
【发布时间】:2014-07-03 18:13:37
【问题描述】:
我发现 QScroller 和 QScrollBar 之间存在冲突。所以我有一个带有垂直滚动条的 QScrollArea 。我还激活了一个 QScroller,它允许我通过左键单击进行动态滚动。但我不能再抓住滚动条手柄了。因为一旦我抓住它,QScroller 就会开始接管。
这就是我添加 QScroller 的方式:
QScroller::grabGesture(mArea, QScroller::LeftMouseButtonGesture) ;
知道如何解决冲突吗?
【问题讨论】:
标签:
c++
qt
scrollbar
qscrollarea
【解决方案1】:
我也遇到了同样的问题。
可以通过将grabGesture 应用于QScrollArea 的视口而不是整个小部件来避免这种情况:
QScroller::grabGesture(mArea->viewport(), QScroller::LeftMouseButtonGesture) ;
【解决方案2】:
我有一个解决方案。我重新定义了 QScrollBar 的 enterEvent 和 leaveEvent,使用 QScroller::ungrabGesture() QScroller::grabGesture() 禁用并激活里面的 QScroller。
它现在工作正常。此外,事件过滤器也可以完成这项工作。