PyQt. TypeError

I set the filter in my QMainWindow as follows:

keyPressFilter = keypressfilter.KeyPressFilter(self) self.installEventFilter(keyPressFilter) 

KeyPressFilter:

 class KeyPressFilter(QObject): def __init__(self, parent=None): super(KeyPressFilter, self).__init__(parent) def eventFilter(self, obj, event): if event.type() == QEvent.KeyPress: print "key press %d" % event.key() return True else: return QObject.eventFilter(obj, event) <- line NN 

and I get endless errors with each type of event QEvent \ QPaintEvent \ QHoverEvent \ etc:

 line NN, in eventFilter: TypeError: QObject.eventFilter(QObject, QEvent): argument 2 has unexpected type 'QPaintEvent' 

How can I get rid of it?

thanks in advance,

Serge

+4
source share
1 answer

eventFilter() not a class method, so you need to pass self :

 return QObject.eventFilter(self, obj, event) 
+6
source

Source: https://habr.com/ru/post/1301506/


All Articles