내가 다시 구현 내가 옳다 경우 이벤트 위치에있는 항목, 즉이 경우 contextMenuEvent
내가 먼저 확인 그런 QGraphicsScene
에서
을 상속에, 내 자신의 장면 클래스를 만들었습니다 아래 장면의 항목을 클릭합니다.
그럴 경우 해당 항목에 contextMenuEvent
을 실행하십시오.
항목이 없거나 자신의 contextMenuEvent
이없는 경우 컨텍스트 이벤트의 장면 버전 만 실행하면됩니다. QtCore로 QtGui 수입 PySide.QtCore로
수입 PySide.QtGui
import PySide.QtGui as QtGui
import PySide.QtCore as QtCore
class MyScene(QtGui.QGraphicsScene):
def __init__(self, *args, **kwargs):
super(self.__class__, self).__init__(*args, **kwargs)
def contextMenuEvent(self, event):
# Check it item exists on event position
item = self.itemAt(event.scenePos().toPoint())
if item:
# Try run items context if it has one
try:
item.contextMenuEvent(event)
return
except:
pass
menu = QtGui.QMenu()
action = menu.addAction('ACTION')
코드 예제를 제공하십시오; QGraphicsView에 "setContextMenu"함수가없는 것처럼 보입니다. http://qt-project.org/doc/qt-5/qgraphicsview-members.html setContextMenuPolicy를 의미 했습니까? – TheDarkKnight
죄송합니다. 그것은 setcontextmenupolicy입니다. 나는 그것을 바꿀 것이다. – Nyaruko
항목이 클릭되었는지 확인한 다음 해당 항목에 대해 컨텍스트 메뉴의 직접 실행 기능을 호출하면됩니까? – AngryDuck