2

I have a QGraphicsScene and I will display a contextmenu. But nothing happend.

Here is my Code:

class graphicsScene(QtGui.QGraphicsScene):
  def __init__ (self, parent = None):
    super(graphicsScene, self).__init__ (parent)

  def contextMenuEvent(self, event):
    self.popMenu = QtGui.QMenu()
    self.popMenu.addAction(QtGui.QAction('test0', None))
    self.popMenu.addAction(QtGui.QAction('test1', None))
    self.popMenu.addSeparator()
    self.popMenu.addAction(QtGui.QAction('test2', None))
    self.popMenu.exec_(event.globalPos())

  def mousePressEvent(self, event):
    super(graphicsScene, self).mousePressEvent(event)
    pos = event.scenePos()
    item = self.itemAt(pos)

    if event.button() == QtCore.Qt.LeftButton:
      #do something

    elif event.button() == QtCore.Qt.RightButton:
      self.contextMenuEvent(event)

I have no idea how to fix this problem.

Thank you for your help!!!

Markus Dod
  • 21
  • 2

1 Answers1

1

This may help:

class Table(QtGui.QGraphicsView):
  def __init__(self, parent=None):
    super(Table, self).__init__(parent)
    self.setScene(QtGui.QGraphicsScene())
    self.setContextMenuPolicy(QtCore.Qt.DefaultContextMenu)

  def contextMenuEvent(self, event):
    menu = QtGui.QMenu()
    menu.addAction('sample')
    menu.exec_(event.globalPos())
RodericDay
  • 1,266
  • 4
  • 20
  • 35