2010-02-16 73 views
4

我設置過濾器對我的QMainWindow本:PyQt。類型錯誤

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 

,我讓每事件類型的QEvent \ QPaintEvent \ QHoverEvent \等無盡的錯誤:

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

我該如何擺脫它?

Thx提前,

塞爾

回答

6

eventFilter()是不是一個類的方法,所以你需要通過self還有:

return QObject.eventFilter(self, obj, event)