1
拦截轮事件以下是事件过滤器:事件过滤器不能从QScrollArea
bool ListenerClass::eventFilter(QObject *obj, QEvent *event) {
std::cout << "Got event type " << event->type() << std::endl;
return false;
}
这里是我如何在一个QScrollArea
this->listenerObj = new ListenerClass(this);
this->setAttribute(Qt::WA_Hover);
this->setAttribute(Qt::WA_NoMousePropagation, false);
this->installEventFilter(this->listenerObj);
上述过滤器的工作原理一般构造安装了它因为它可以拦截事件,例如调整大小,悬停等。但是,只有在滚动范围的边缘达到滚动范围时才会拦截车轮事件,而不是在滚动期间。
Viewport position User action Output
----------------------------------------------------------
Top downwards wheel <<No output>>
Middle downwards wheel <<No output>>
Middle downwards wheel <<No output>>
Just touch bottom downwards wheel Got event type 31
Bottom (can't downwards wheel Got event type 31
scroll anymore)
如何在页面滚动期间拦截滚轮事件?