Название: Обработка движения мыши MouseMove над элементом Отправлено: oBOXPOH от Мая 11, 2017, 11:31 Всем здравствуйте!
Проблема следующая: не обрабатывается событие движения мыши над некоторым элементом. Теперь подробнее. Есть класс MainWindow, производный от класс QMainWindow. В его конструкторе задан созданный далее виджет, который устанавливается центральным. Код данного класса ниже: Код: #include "mainwindow.h" Далее есть класс HistogramWidget, который выглядит следующим образом: QHBoxLayout -> QGroupBox -> QHBoxLayout -> QHBoxLayout -> QChartView -> QChart. Код данного класса ниже: Код: #include "histogramwidget.h" Что хочется? Хочу обрабатывать событие движения мыши над QChart, но у меня это не выходит. Создал eventFilter, но по условию ничего не проходит. histogramChart->installEventFilter(this); используется, как и setMouseTracking(true); . В чём может быть проблема? Заранее спасибо! Название: Re: Обработка движения мыши MouseMove над элементом Отправлено: PimenS от Мая 11, 2017, 11:46 Используйте void QWidget::mouseMoveEvent(QMouseEvent *event)
Название: Re: Обработка движения мыши MouseMove над элементом Отправлено: oBOXPOH от Мая 11, 2017, 11:50 Используйте void QWidget::mouseMoveEvent(QMouseEvent *event) И каким образом мне его использовать, если мне нужно обрабатывать движение мыши только над QChart, а не над всем виджетом, в котором создаётся mouseMoveEvent? Название: Re: Обработка движения мыши MouseMove над элементом Отправлено: PimenS от Мая 11, 2017, 11:52 Используйте void QWidget::mouseMoveEvent(QMouseEvent *event) И каким образом мне его использовать, если мне нужно обрабатывать движение мыши только над QChart, а не над всем виджетом, в котором создаётся mouseMoveEvent? Так и переопределите его для QChart Или попробуйте так: Код: bool HistogramWidget::eventFilter(QObject *watched, QEvent *event) Название: Re: Обработка движения мыши MouseMove над элементом Отправлено: oBOXPOH от Мая 11, 2017, 12:03 Используйте void QWidget::mouseMoveEvent(QMouseEvent *event) И каким образом мне его использовать, если мне нужно обрабатывать движение мыши только над QChart, а не над всем виджетом, в котором создаётся mouseMoveEvent? Так и переопределите его для QChart Или попробуйте так: Код: bool HistogramWidget::eventFilter(QObject *watched, QEvent *event) Тут я опять попробовал использовать mouseMoveEvent для всего виджета, но прикол в том, что обработчик исполняется только вне QGroupBox, т.е только во внешнем слое, наверное... Внутри - фиг! Код обработчика: Код: void HistogramWidget::mouseMoveEvent(QMouseEvent *event) Даже тут не работает так, как надо! Неужели так коряво сделан Qt? Название: Re: Обработка движения мыши MouseMove над элементом Отправлено: PimenS от Мая 11, 2017, 12:16 Даже тут не работает так, как надо! Неужели так коряво сделан Qt? В данном случае проблема не в Qt. Создайте свой класс на основе QChart, переопределите там нужные методы и все будет работать. Название: Re: Обработка движения мыши MouseMove над элементом Отправлено: oBOXPOH от Мая 11, 2017, 12:31 Даже тут не работает так, как надо! Неужели так коряво сделан Qt? В данном случае проблема не в Qt. Создайте свой класс на основе QChart, переопределите там нужные методы и все будет работать. Видимо, придётся так сделать. Но не особо понимаю, как мне поможет переопределение mouseMoveEvent, если влиять такое событие будет не на сам QChart, а на другой элемент в том же виджете. Можете подсказать? Название: Re: Обработка движения мыши MouseMove над элементом Отправлено: PimenS от Мая 11, 2017, 12:43 Вы писали
Цитировать Хочу обрабатывать событие движения мыши над QChart Цитировать если влиять такое событие будет не на сам QChart, а на другой элемент в том же виджете Для какого элемента вам нужно движение мыши отловить? Мне не совсем понятно. Название: Re: Обработка движения мыши MouseMove над элементом Отправлено: oBOXPOH от Мая 11, 2017, 12:58 Вы писали Цитировать Хочу обрабатывать событие движения мыши над QChart Цитировать если влиять такое событие будет не на сам QChart, а на другой элемент в том же виджете Для какого элемента вам нужно движение мыши отловить? Мне не совсем понятно. Я хочу обрабатывать движение мыши над QChart, но при движении такое событие должно влиять не только на сам QChart. Название: Re: Обработка движения мыши MouseMove над элементом Отправлено: PimenS от Мая 11, 2017, 14:36 Для этого у QChart есть сигналы
|