如何将矩形附加到 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);
}
如何将新的矩形附加到 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);
}