我用我的QMainWindow设置过滤器:
keyPressFilter = keypressfilter.KeyPressFilter(self)
self.installEventFilter(keyPressFilter)
Run Code Online (Sandbox Code Playgroud)
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
Run Code Online (Sandbox Code Playgroud)
我得到每个eventtype QEvent\QPaintEvent\QHoverEvent\etc无限错误:
line NN, in eventFilter:
TypeError: QObject.eventFilter(QObject, QEvent): argument 2 has unexpected type 'QPaintEvent'
Run Code Online (Sandbox Code Playgroud)
我怎么能摆脱它?
Thx提前,
哔叽
eventFilter()不是类方法,所以你也需要传递self:
return QObject.eventFilter(self, obj, event)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
664 次 |
| 最近记录: |