Kam*_*wal 5 qt line bounding-box qpainter
我QPainterPath
在两点之间画一条线如下:
QPainterPath line;
line.moveTo(start_p);
line.lineTo(end_p);
QPen paintpen(Qt::black);
paintpen.setWidth(1);
painter->setRenderHint(QPainter::Antialiasing);
painter->setBrush(Qt::SolidPattern);
painter->setPen(paintpen);
painter->drawPath(line);
Run Code Online (Sandbox Code Playgroud)
我已将bounding rect定义为:
QRectF Line::boundingRect() const
{
return QRectF(start_p.x(), start_p.y(), end_p.x(), end_p.y());
}
Run Code Online (Sandbox Code Playgroud)
我在以下情况下正确画线:
start_p.x() < end_p.x()
Run Code Online (Sandbox Code Playgroud)
和
start_p.y() < end_p.y()
Run Code Online (Sandbox Code Playgroud)
如何定义边界矩形,以便无论两点坐标(start_p和end_p)之间的关系如何都能正确绘制直线?
您可以尝试规范化矩形:
QRectF Line::boundingRect() const
{
return QRectF(start_p.x(), start_p.y(), end_p.x(), end_p.y()).normalized();
}
Run Code Online (Sandbox Code Playgroud)