我在一个经典的QgraphicsView/qgraphicscene/QGraphicsItem框架中工作。 我在QgraphicsView中声明一个上下文菜单:
self.setContextMenuPolicy(QtCore.Qt.CustomContextMenu)
self.customContextMenuRequested.connect(self.__contextMenu)
后来:
^{pr2}$然后在QGraphicsItem实例类中,我使用contextMenuEvent,如下所示:
# ---------------------------------------------------------------------------
def contextMenuEvent(self, event):
""" """
# ----> Creating Context menu -----------------------------------
oTreeMenu = QtGui.QMenu()
问题是QGraphicsItem事件被QGraphicsView完全覆盖。 我该如何处理这两个问题?在
我找到了一个解决方案:
我使用的是qgraphicsceneContextMenuEvent,而不是另外两个。 在事件中,我检查鼠标是否在QGraphicsItem上方,并构建相应的菜单。在
我真的不喜欢这个解决方案,因为我所有的函数都在qgraphicscene类下,而且大多数函数都与项目有关,而不是场景。所以这有点乱,但是很管用。在
还是希望看到更好的解决方案。在
我用C++做的,但我觉得应该有用
在图形视图中:
在GraphicsItem中:
^{pr2}$相关问题 更多 >
编程相关推荐