QGraphicsLineItem根据中心点绘制交叉C++
时间: 2024-05-12 10:14:39 浏览: 47
要绘制交叉线,可以在QGraphicsLineItem的paint()函数中绘制两条交叉的直线。以下是示例代码:
```cpp
void MyLineItem::paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget)
{
QPen pen = QPen(Qt::red, 2, Qt::SolidLine, Qt::RoundCap, Qt::RoundJoin);
painter->setPen(pen);
// 获取线段的起点和终点
QPointF p1 = line().p1();
QPointF p2 = line().p2();
// 计算中心点、水平方向上的交叉线和垂直方向上的交叉线
QPointF center = (p1 + p2) / 2;
QLineF hLine(center.x() - 20, center.y(), center.x() + 20, center.y());
QLineF vLine(center.x(), center.y() - 20, center.x(), center.y() + 20);
// 绘制交叉线
painter->drawLine(hLine);
painter->drawLine(vLine);
}
```
在上面的代码中,我们首先设置了画笔,然后获取了线段的起点和终点。接着,我们计算出了中心点、水平方向上的交叉线和垂直方向上的交叉线,最后在paint()函数中使用drawLine()函数分别绘制了这两条交叉线。
注意:这里的20是交叉线的长度,可以根据需要进行调整。
阅读全文