QGraphicsView根据中心点绘制交叉C++
时间: 2023-09-15 19:21:56 浏览: 92
QGraphicsView架构实现基本图形的绘制
5星 · 资源好评率100%
可以通过重写`QGraphicsView`的`paintEvent()`函数来实现绘制交叉线的效果,具体步骤如下:
1. 在`QGraphicsView`的构造函数中,设置背景颜色和滚动条的策略:
```cpp
MyGraphicsView::MyGraphicsView(QWidget* parent) : QGraphicsView(parent)
{
setBackgroundBrush(QBrush(Qt::gray));
setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOff);
setVerticalScrollBarPolicy(Qt::ScrollBarAlwaysOff);
}
```
2. 重写`paintEvent()`函数,在其中绘制交叉线:
```cpp
void MyGraphicsView::paintEvent(QPaintEvent* event)
{
// 调用基类的paintEvent()函数
QGraphicsView::paintEvent(event);
// 获取视图可见区域的矩形
QRectF rect = mapToScene(viewport()->rect()).boundingRect();
// 创建画笔并设置属性
QPen pen(Qt::black);
pen.setWidth(2);
// 绘制横线
QPainter painter(viewport());
painter.setPen(pen);
painter.drawLine(rect.left(), rect.center().y(), rect.right(), rect.center().y());
// 绘制竖线
painter.drawLine(rect.center().x(), rect.top(), rect.center().x(), rect.bottom());
}
```
这样就可以在`QGraphicsView`中心点绘制交叉线了。
阅读全文