完全禁用QSCrollarea中的水平滚动,而不仅仅是条

Disable horizontal scrolling in QScrollArea completely, not just the bars

本文关键字:滚动 不仅仅是 水平 QSCrollarea      更新时间:2023-10-16

在qt中,我有一个qscrollarea,其中有一些内容,可以垂直滚动,但绝不应该允许水平滚动。即使我禁用H滚动条显示出显示的鼠标,具有支撑水平运动的滚轮(或触摸垫)的鼠标也会使其一侧移动到一边。

现在,这可能部分是一个布局问题...但是实际上没有什么。这可能是一个警察,但是有没有办法只能从后面"锁定"滚动区域才能水平移动?

scrollArea->verticalScrollBar()->setEnabled(false);
scrollArea->horizontalScrollBar()->setEnabled(false);

对于您的QScrollArea,您需要eventFilter方法中的过滤器QEvent::Wheel或Overload wheelEvent(QWheelEvent* event)方法。

其他方法是创建从QWidget遗传的窗口小部件,仅包含eventFilter,然后将其过滤器应用于您的滚动区域:

scrollArea->viewport()->installEventFilter(someFilterWidget);

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

myscrollarea-> sethorizontalscrollbarpolicy(qt :: scrollbaralwaysoff);

http://qt-project.org/doc/qt-4.8/qabstractscrollarea.html#horizontalscrollbarpolicy-prop-prop

相关文章: