InterVi
@InterVi
говнокодер

PyQt5 — mouseMoveEvent не всегда работает (eventFilter вообще не работает), как же отслеживать мышь?

Задача - отслеживать мышь у множества QWidget-ов (вешается декоратор на mouseMoveEvent и делает свои дела). Проблема в том, что ивент срабатывает только над голой формой. А есть такие виджеты, где какой-то элемент занимает всю форму, поэтому ивент не работает вообще. Насколько я понял, единственный вариант - ловить eventFilter. Но он не работает совсем. Так каким способом ловить мышь? Что я делаю не так? Вот пример с eventFilter, который не работает:
import sys
from PyQt5.QtWidgets import QApplication, QMainWindow
from PyQt5.QtCore import QObject


class SomeFilter(QObject):
    def eventFilter(self, obj, ev):
        print("Event filtering ok")
        return False


class MainWidget(QMainWindow):
    def __init__(self):
        QMainWindow.__init__(self)
        self.installEventFilter(SomeFilter())


app = QApplication(sys.argv)
w = MainWidget()
w.show()
sys.exit(app.exec_())

То, что тут MainWidget, не принципиально. Пробовал вешать на QWidget, на элементы внутри QWidget - всё бесполезно.
  • Вопрос задан
  • 166 просмотров
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через TM ID
Похожие вопросы
HARMAN Connected Services Нижний Новгород
от 60 000 до 120 000 руб.
Soft Media Int. Пенза
от 125 000 до 225 000 руб.
Popmechanic Москва
от 100 000 до 150 000 руб.
21 авг. 2018, в 14:23
350000 руб./за проект
21 авг. 2018, в 13:54
5000 руб./за проект
21 авг. 2018, в 13:30
5000 руб./за проект