2011-11-28 2 views
0

저는 아직 PyQt 초보자입니다. 3 가지 QGraphicScenes를 표시하는 QGraphicsView가 있습니다. 사전을 사용하여 전환됩니다.QGraphicsView를 이용한 슈퍼 임 포즈 장면

class MyScenes: 

    def _initScenes(self):   
     self._viewer=QGraphicsView() 
     self._sinScene=QGraphicScene() 
     self._cosScene=QGraphicScene() 
     self._tanScene=GraphicScene() 
     self._scenes={'sin':self._sinScene,'cos':self._cosScene,'tan':self._tanScene} 

    def _showScene(self,ID):    
     self._viewer.setScene(self.scenes[ID]) 

나는 서로 겹쳐 3 개 장면 표시됩니다 옵션 구현하려는 - 한 번에하지를 -이해야합니까 어떻게? 조회수는 3 번이 필요합니까? 보기가 여러 개의 투명한 장면을 표시 할 수 있습니까? 조금 둘러 보니 답을 찾을 수 없었습니다.

PyQt4에서 작동하는 한 Python 또는 C++로 대답 할 수 있습니다. 장면 이후 TIA

답변

1

는 계층 트리로 처리됩니다, 당신은 하나의 QGraphicsScene 대신 3 QGraphicsScenes 내부에 3 QGraphicsItems를 만들 수 있습니다.
그리고 현재 죄/음경/황갈색 "그래프"/ "하위 장면"에있는 항목을 이들 3 가지 최상위 항목 중 하나의 하위 항목으로 추가합니다.

+0

QGraphicScene.addLine()을 사용하여 그리는 데 리엔지니어링을 많이 사용합니다. QGraphicsItem을 사용하기 위해 모든 것을 낮은 레벨에서 다시 구현해야 할 것 같습니다.하지만 어쩌면 그건 내 실수이고 잘못된 것입니다. 처음에는 더 좋은 방법이 있어야 할 것처럼 보입니다. – Vector

+0

@Mikey : 최상위 항목을 나타내는'QGraphicsItem' 파생 클래스에'addLine' 메소드를 작성하면 하위 레벨에서 아무것도 변경할 필요가 없습니다. – alexisdm

+0

나는 당신을 모아 단지 그것을 감싸고 그것을 장면 객체에 전달한다는 것을 의미한다. - 내가 말했듯이 여전히 PyQt를 사용하지 않고 더 추상적 인 클래스를 사용하지 않았다. – Vector