3#include <QtWidgets/QWidget>
4#include <QtCore/QEvent>
5#include <QtWidgets/QAbstractSpinBox>
6#include <QtWidgets/QSlider>
7#include <QtWidgets/QDial>
8#include <QtWidgets/QAbstractItemView>
9#include <QtWidgets/QComboBox>
24 auto childrenList = parentPtr->findChildren<QWidget*>();
25 for (
auto it : childrenList)
27 if (
auto viewPtr =
dynamic_cast<QAbstractItemView*
>(it))
29 viewPtr->viewport()->installEventFilter(filterPtr);
33 if (
dynamic_cast<QAbstractSpinBox*
>(it) ||
34 dynamic_cast<QSlider*
>(it) ||
35 dynamic_cast<QDial*
>(it) ||
36 dynamic_cast<QComboBox*
>(it))
38 it->installEventFilter(filterPtr);
39 it->setFocusPolicy(Qt::StrongFocus);
53 if (event->type() == QEvent::Wheel) {
54 if (
auto editorPtr =
dynamic_cast<QWidget*
>(
object)) {
55 if (!editorPtr->hasFocus()) {
67template<
class W
idget = QW
idget>
76 virtual bool eventFilter(QObject*
object, QEvent* event)
override
84 return Widget::eventFilter(
object, event);
92template<
class GUIClass>
101 BaseClass::OnGuiCreated();
117 return BaseClass::eventFilter(
object, event);
TWheelFocusEventFilter(QWidget *parent=nullptr)
virtual bool eventFilter(QObject *object, QEvent *event) override
virtual bool eventFilter(QObject *object, QEvent *event) override
virtual void OnGuiCreated() override
Standard GUI specific interfaces and components based on Qt.
static void InstallWheelEventFilter(QObject *filterPtr, QWidget *parentPtr)
static bool HandleWheelEvent(QObject *object, QEvent *event)