LineString
を表示するために自分自身のQGraphicsItem
を再定義しました。自分自身でboundingbox
を作成し、ペインタが抽象メソッドを再定義する必要があるため、これを再定義しました。Qtの傾きのある直線からの境界値
今、私はこのコードを持っている:
QRectF myQGraphicsLine::boundingRect() const
{
double lx = qMin(myLine->getX(0), myLine->getX(1));
double rx = qMax(myLine->getX(0), myLine->getX(1));
double ty = qMin(-myLine->getY(0), -myLine->getY(1));
double by = qMax(-myLine->getY(0), -myLine->getY(1));
return QRectF(lx-size/2,ty, rx -lx + size, by-ty).;
}
void myQGraphicsLine::paint(QPainter * painter, const QStyleOptionGraphicsItem * option, QWidget * widget)
{
pen.setColor(Qt::red);
QLine line(myLine->getX(0), -myLine->getY(0), myLine->getX(1), -myLine->getY(1));
pen.setWidth(size);
painter->setPen(pen);
painter->setBrush(brush);
painter->drawLine(line);
}
これは、すべてはうまく動作しますが、私はboundingRec
と少し問題を抱えています。 ラインは、私はこの結果を得るx軸またはy軸を以下の場合:
そして、他の位置に私はこれを取得:
を、私はこの必要があります。
誰もがboundinRec
を回転させる方法を知っていますか?どうもありがとう!
http://doc.qt.io/qt-5/qgraphicsitem.html#boundingRegion – hyde
に感謝します。@hyde、私はそれをチェックします – Zharios