2012-06-14 1 views
2

QGraphicsScene을 사용하여 항목의 순서가 매우 중요합니다. 항목 목록의 특정 색인 (즉, items()이 호출 될 때 반환되는 목록)에 항목을 추가하고 싶습니다.QGraphicsScene은 removeAt() 및 insert() 함수와 유사합니까?

QList는 removeAt()insert() 기능을 가지고 있지만 QGraphicsScene은 addItemAt() 또는 이와 유사한 내용을 가지고 있습니다. 그렇지 않다면 누구든지 이것에 대해 좋은 방법을 알고 있습니까?

답변

1

삽입시 주문을 지정하는 옵션이 없습니다. 기본적으로 가장 최근에 추가 된 항목이 상단에 표시됩니다.

형제 항목 (동일한 부모가있는 항목)이 장면에 추가 된 후에 겹치는 순서를 결정하는 두 가지 옵션이 있습니다.

  1. Z 값을 지정하십시오.

  2. 삽입 순서를 변경하십시오 (동일한 Z 값을 가진 항목에 적용). 당신은 Z 값으로 정렬하려면

, 당신은 당신의 항목에 특정 Z 값을 할당하고 QGraphicsItem::setZValue()을 사용하여 새 항목을 추가 할 때 필요에 따라 다시 할당해야합니다.

또는 QGraphicsItem::stackBefore()을 호출하여 항목의 삽입 순서를 변경할 수 있습니다.

+0

이것은 엉망입니다 ... 코드를 바꿔야합니다. 응답 해 주셔서 감사합니다. – Justin