gpt4 book ai didi

c++ - 如何将矩形附加到 QGraphicsView

转载 作者:行者123 更新时间:2023-11-30 05:08:33 26 4
gpt4 key购买 nike

如何将新的矩形附加到 QgraphicView 在此代码中,当单击按钮时创建矩形。但是当我第二次单击按钮时,先前创建的矩形被删除。我需要创建 2 个矩形当我点击按钮 2 次时。当我点击按钮 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);
}

关于c++ - 如何将矩形附加到 QGraphicsView,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46797512/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com