2010-02-16 2 views
4

я поставил фильтр на моем QMainWindow с этим:PyQt. TypeError

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 

и я получаю бесконечные ошибки с каждым EventType QEvent \ QPaintEvent \ QHoverEvent \ и т.д.:

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

Как я могу избавиться от него?

Thx заранее,

Serge

ответ

6

eventFilter() не метод класса, поэтому вам нужно пройти self, а также:

return QObject.eventFilter(self, obj, event) 
Смежные вопросы