2010-06-21 5 views
4

체스 판을 만들려고합니다. 모든 동전은 투명하고 보드는 없습니다. 'itemAt'함수를 사용하여 클릭 한 항목을 가져 오려고하면 backGround 항목 (보드 의미)이 항상 반환됩니다. 나는 동전이 투명하다는 사실 때문에 선택되지 않았다고 의심하고 있습니다.qt - QGraphicsScene에서 올바른 항목을 가져올 수 없습니다.

+1

항목이 투명하다고 말하면 표시되지 않습니다 (즉, QWidget.isVisible()은 false를 반환합니다)? itemAt()는 표시되는 항목 만 반환합니다. 또한 최상위 항목을 반환합니다. 항목 (const QPointF & pos)을 사용하면 z 순서와 관계없이 한 지점에서 모든 항목을 가져올 수 있습니다. –

답변

2

나는 대답을 얻었다. 나는 event->pos()을 얻으려고 노력했다. 이것은 QGraphicsItem의 좌표에서 마우스 클릭을 반환합니다. 그래서 event->scenePos()을 사용해야합니다.

이제 제대로 이해하고 있습니다.

1

당신이 다음 shape()을 무시해야 할 수 있습니다 사용자 정의 QGraphicsItem를 사용하는 경우,

는 일반 QGraphicsPixmapItem을 그리고 그것은 알파 마스크가있는 경우에, 당신은 setShapeMode()를 호출해야합니다.

관련 문제