开发者

PyQt. TypeError

I set filter on my QMainWindow with this:

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

KeyPressFilter itself:

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 getting endless errors with every eventtype Q开发者_如何转开发Event\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?

Thx in advance,

Serge


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

return QObject.eventFilter(self, obj, event)
0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜