如何将矩形附加到 QGraphicsView

How append rectangle to QGraphicView

如何将新的矩形附加到 QgraphicView 在此代码中,当我第二次单击按钮 click.But 时创建矩形 removed.I 需要做的单击按钮 2 时创建 2 个矩形 times.create 单击按钮 3 次时创建 3 个矩形

void Widget::on_btnCreateRect_clicked()
{
    scene = new QGraphicsScene(this);
    ui->graphicsView->setScene(scene);

    //QBrush redBrush(Qt::red);
    QBrush blueBrush(Qt::blue);
    QPen blackPen(Qt::black);
    blackPen.setWidth(6);

    rect = scene->addRect(-10,-10,100,100,blackPen,blueBrush);
    rect->setFlag(QGraphicsItem::ItemIsMovable, true);
}

使用 scene = new QGraphicsScene(this); 创建一个新场景并将矩形添加到其中。具有先前矩形的旧场景存在但不再显示。因此,与其创建新场景,不如使用旧场景:rect = ui->graphicsView->scene()->addRect(-10,-10,100,100,blackPen,‌​blueBrush);。这也将避免您使用 new 创建的内存泄漏。这是更正后的代码:

void Widget::on_btnCreateRect_clicked()
{
    //QBrush redBrush(Qt::red);
    QBrush blueBrush(Qt::blue);
    QPen blackPen(Qt::black);
    blackPen.setWidth(6);

    QRect *rect = ui->graphicsView->scene()->addRect(-10,-10,100,100,blackPen,‌​blueBrush);
    rect->setFlag(QGraphicsItem::ItemIsMovable, true);
}