7

在 Qt 中,我有一个 QScrollArea ,其中包含一些可以垂直滚动的内容,但绝不应该允许水平滚动。即使我禁用了 H 滚动条的显示,具有支持水平运动的滚轮(或触摸板)的鼠标也会使其左右移动一点。

现在,这可能部分是布局问题……但实际上屏幕上没有任何内容。这可能是一种逃避,但有没有办法从后面“锁定”滚动区域,可以水平移动?

4

3 回答 3

10
scrollArea->verticalScrollBar()->setEnabled(false);
scrollArea->horizontalScrollBar()->setEnabled(false);
于 2016-09-13T08:49:54.740 回答
4

对于您,QScrollArea您需要过滤方法或重载方法。QEvent::WheeleventFilterwheelEvent(QWheelEvent* event)

另一种方法是创建仅继承自QWidgetwith 重载的小部件eventFilter并将其过滤器应用于您的滚动区域:

scrollArea->viewport()->installEventFilter(someFilterWidget);
于 2012-10-18T14:15:42.833 回答
2

您是否尝试设置滚动条策略?

myScrollArea->setHorizo​​ntalScrollBarPolicy(Qt::ScrollBarAlwaysOff);

http://qt-project.org/doc/qt-4.8/qabstractscrollarea.html#horizo​​ntalScrollBarPolicy-prop

于 2012-10-18T14:11:45.977 回答