私はグラフィックスビューフレームワークに基づいてマッピングアプリケーションを構築しています。ドラッグするといくつかの線が消えることを除いて、すべてがうまく動作します。それは見えないと判断される項目のようですが、実際はその一部です。以下はスクリーンショットです。 Iは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を思い出していただきありがとうございます。私は間違って範囲を計算し、今問題は解決されました:) –