2010-03-12 1 views
2

두 개의 서로 다른 그래픽보기에서 그래픽 장면의 항목을 표시하려고합니다. 내 문제는 두 가지보기 모두에서 그래픽 장면의 모든 항목을 표시하고 싶지 않다는 것입니다. 예를 들어, 내 응용 프로그램의 뷰 1에서 한 뷰에 일부 항목을 그리는 편집기를 시작하고 사용자가 편집을 완료하면 뷰 2에 새로 추가 된 항목이 표시됩니다.하나의 QGraphicsScene이있는 다중 QGraphicsView

하나의 그래픽 장면에서 가능합니까?

사미

답변

2

이 내가 아는 한이 작업을 수행하는 내장 된 방법은 아니지만, 다음과 같은 방법으로 작업을 수행 할 수 있습니다 : 당신이 항목을 만들 때

하면, 해당 항목을주는 보이는 위젯의 포인터 (이 함수를 필터라고 부를 수 있음). item의 paint() 메소드에서, paint() 메소드의 매개 변수로 전달 된 QWidget *이 filter로 주어진 동일한 위젯인지 확인하십시오. 동일하면 보통 페인트하십시오. 그렇지 않은 경우 아무것도 칠하지 마십시오. 이렇게하면 하나의보기에서만 항목을 볼 수 있습니다.

이 방법의 함정은 모든보기에서 항목을 선택하고 이동 가능하게 할 수 있다는 것입니다. 이것은 단지보기 당 가시성에 영향을 미칩니다. (다른 문제도있을 수 있습니다. 시도하지 않고 말할 수는 없습니다)

+0

아마도 메서드를 사용하여 boundingRect() 메서드를 구현하는 것이 더 좋을 수 있으므로 항목이 표시되고 선택 가능하며 조회수. – alisami

관련 문제