그래픽보기 프레임 워크를 기반으로하는 매핑 응용 프로그램을 만들고 있습니다. 드래그 할 때 일부 줄이 사라지는 것을 제외하고는 모두 잘 작동합니다. 보기에서 판단해야 할 항목 인 것처럼 보이지만 사실은 그 항목의 일부입니다. 아래는 스크린 샷입니다. 내가 QGraphicsView
및 QGraphicsItem
서브 클래스 보기를 끌 때 QGraphicsItem이 사라집니다.
은 볼에 연결되어 현장에 항목을 추가했다. 드래그 기능을 구현하려면 서브 클래스의 생성자에 setDragMode()
을 사용하기 만하면됩니다. 그리고 MapShape.cpp에서
:
QRectF Polyline::boundingRect() const
{
return QRectF(minX-pen.width()/2, minY-pen.width()/2, maxX-minX+pen.width(), maxY-minY+pen.width());
}
void Polyline::paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget)
{
Q_UNUSED(option);
Q_UNUSED(widget);
pen.setCosmetic(true);
painter->setPen(pen);
for(auto iter = points.begin(); iter != points.end()-1; ++iter)
{
painter->drawLine(*iter, *(iter+1));
}
}
누군가 도와 주 시겠어요? 고맙습니다!
boundingRect를 상기시켜 주셔서 감사합니다. 방금 실수로 경계를 계산하고 이제는 문제가 해결되었습니다. :) –