Задача - отслеживать мышь у множества 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 - всё бесполезно.