在 Qt 中,我有一个 QScrollArea ,其中包含一些可以垂直滚动的内容,但绝不应该允许水平滚动。即使我禁用了 H 滚动条的显示,具有支持水平运动的滚轮(或触摸板)的鼠标也会使其左右移动一点。
现在,这可能部分是布局问题……但实际上屏幕上没有任何内容。这可能是一种逃避,但有没有办法从后面“锁定”滚动区域,可以水平移动?
在 Qt 中,我有一个 QScrollArea ,其中包含一些可以垂直滚动的内容,但绝不应该允许水平滚动。即使我禁用了 H 滚动条的显示,具有支持水平运动的滚轮(或触摸板)的鼠标也会使其左右移动一点。
现在,这可能部分是布局问题……但实际上屏幕上没有任何内容。这可能是一种逃避,但有没有办法从后面“锁定”滚动区域,可以水平移动?
scrollArea->verticalScrollBar()->setEnabled(false);
scrollArea->horizontalScrollBar()->setEnabled(false);
对于您,QScrollArea
您需要过滤方法或重载方法。QEvent::Wheel
eventFilter
wheelEvent(QWheelEvent* event)
另一种方法是创建仅继承自QWidget
with 重载的小部件eventFilter
并将其过滤器应用于您的滚动区域:
scrollArea->viewport()->installEventFilter(someFilterWidget);
您是否尝试设置滚动条策略?
myScrollArea->setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOff);
http://qt-project.org/doc/qt-4.8/qabstractscrollarea.html#horizontalScrollBarPolicy-prop