我在自定义 QGraphicsItem 中传递 keyPressEvent 时遇到问题,我不确定我是否理解它在此类对象上的工作原理。我知道它已经被问过了,我在 C++ 和 Python 中发现了很多类似的问题,但我无法让它在我的脚本中工作......
在 Qt 的文档中说:
Note that key events are only received for items that set the ItemIsFocusable flag,
and that have keyboard input focus.
我的猜测是与这句话相关的代码中有问题。
基本上,我的课是这样的:
class myItem(QtWidgets.QGraphicsItem):
def __init__(self, **kwargs):
super(myItem, self).__init__(**kwargs)
self.setFlag(QtWidgets.QGraphicsItem.ItemIsSelectable)
self.setFlag(QtWidgets.QGraphicsItem.ItemIsFocusable)
def keyPressEvent(self, event):
if event == QtCore.Qt.Key_Delete:
self.scene().removeItem(self)
return super(myItem, self).keyPressEvent(event)
我错过了一个标志,还是我需要在我的场景类中设置一些东西,或者类似的东西?
干杯:)