嗨我想获得contextmenu行动为广泛的笔画qgraphicsitem工作,我希望能够右键单击我的场景中的任何qgraphicsitem获得一个上下文菜单和取决于选择/点击哪个项目,运行3个功能中的一个。为了得到这个我创建了一个节点类的子类的QGraphicsItem和我的代码如下从QGraphicsItems的上下文菜单动作获取事件
class Node(QtGui.QGraphicsItem):
Type = QtGui.QGraphicsItem.UserType + 1
def __init__(self, Parent=None):
super(Node, self).__init__()
self.newPos = QtCore.QPointF()
self.setFlag(QtGui.QGraphicsItem.ItemIsMovable)
self.setFlag(QtGui.QGraphicsItem.ItemIsSelectable)
self.setFlag(QtGui.QGraphicsItem.ItemSendsGeometryChanges)
self.setCacheMode(QtGui.QGraphicsItem.DeviceCoordinateCache)
self.setZValue(1)
def notifyaction1(self):
print "action1"
def contextMenuEvent(self, contextEvent):
object_cntext_Menu = QtGui.QMenu()
object_cntext_Menu.addAction("action1")
object_cntext_Menu.addAction("action2", object_cntext_Menu, QtCore.SLOT(self.notifyaction1()))
object_cntext_Menu.addAction("action3")
position=QtGui.QCursor.pos()
object_cntext_Menu.exec_(position)
到目前为止,这个代码显示在正确的地方的上下文菜单,但我怎么能告诉点击了哪个项目,所以我可以运行相应的动作相关功能。目前只是右击触发与错误
对象的notifyaction1功能::连接:括号预计,插槽QMenu ::
我在Windows上使用PyQt4的/蟒蛇。 谢谢
非常感谢,这解决了我的问题 – user595985