class PageGroupHandler: public QQuickWidget
{
Q_OBJECT
public:
PageGroupHandler();
protected:
bool eventFilter(QObject *obj, QEvent *event);
};
PageGroupHandler::PageGroupHandler()
: QQuickWidget(QUrl("qrc:/custom/qml/PagesGroups/PageManager.qml"))
{
this->installEventFilter(this);
}
bool PageGroupHandler::eventFilter(QObject *obj, QEvent *event)
{
if (obj == this || obj->parent() == this) {
return QObject::eventFilter(obj, event);
}
return true;
}
注意:没有错误。我已经加载了一个 qml 组件,它有一些矩形组件,有些有鼠标事件,有些没有,所以当我在其上滚动时,事件起作用,但是当没有滚动区域时,本身就是滚动区域的父级开始滚动,这很奇怪.
据我所知,当您移动鼠标时,您首先会在大多数子小部件上收到该事件。因此,您可以在子小部件中覆盖特定事件(例如 CustomWidget::mouseMoveEvent...),而不调用父实现(例如 QWidget::mouseMoveEvent),并且父小部件不会收到该事件。