嗨我想獲得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