QGraphicsView绘制交叉C++
时间: 2023-09-18 16:11:43 浏览: 98
要在QGraphicsView上绘制交叉,您可以使用QGraphicsScene和QGraphicsItem。以下是一个简单的示例:
首先,创建一个自定义的QGraphicsItem类来表示您的交叉:
```
class CrossItem : public QGraphicsItem
{
public:
CrossItem(QGraphicsItem* parent = nullptr) : QGraphicsItem(parent) {}
QRectF boundingRect() const override
{
return QRectF(-10, -10, 20, 20); // 范围
}
void paint(QPainter* painter, const QStyleOptionGraphicsItem* option, QWidget* widget) override
{
Q_UNUSED(option);
Q_UNUSED(widget);
painter->drawLine(-10, -10, 10, 10); // 绘制交叉
painter->drawLine(10, -10, -10, 10);
}
};
```
然后,在您的QGraphicsScene中添加两个CrossItem实例,并在需要时调整它们的位置:
```
QGraphicsScene* scene = new QGraphicsScene(this);
CrossItem* cross1 = new CrossItem();
CrossItem* cross2 = new CrossItem();
scene->addItem(cross1);
scene->addItem(cross2);
cross1->setPos(0, 0); // 设置位置
cross2->setPos(50, 50);
ui->graphicsView->setScene(scene); // 将场景设置为视图的场景
```
这将在QGraphicsView上绘制两个交叉。您可以根据需要调整交叉的位置和大小。
阅读全文