我想在我的樹視圖中啓用刪除鍵。這是我到目前爲止有:創建一個事件過濾器
class delkeyFilter(QObject):
delkeyPressed = pyqtSignal()
def eventFilter(self, obj, event):
if event.type() == QEvent.KeyPress:
if event.key() == Qt.Key_Delete:
self.delkeyPressed.emit()
print 'delkey pressed'
return True
return False
我連接eventfilter
這樣的:
filter = delkeyFilter(self.dataTreeView)
self.dataTreeView.installEventFilter(filter)
爲什麼我需要傳遞self.dataTreeview
當我創建過濾器?沒有它,它就無法工作。
I * *認爲(但不因此,如果沒有父節點,Python的垃圾收集器將會吃掉你的過濾器,因爲安裝事件過濾器不會創建一個引用(在python方面)。爲了驗證這一點,請儘量保留對「過濾器」的引用(例如,說'self.filter = ...')但不傳遞父代。 – balpha 2010-07-22 11:29:16