2017-10-17 19 views
1

어떻게 새 사각형 모양을 QgraphicView에 추가 할 수 있습니까? 단추를 클릭 할 때 사각형을 만드는이 코드에서 이전에 단추를 두 번 클릭했을 때 이전에 삭제 된 사각형을 만들었습니다. 두 사각형을 만들 필요가 있습니다. 난 당신이 새로운 장면을 만들 scene = new QGraphicsScene(this);로 버튼을 3 회QGraphicView에 사각형을 추가하는 방법

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); 
} 

답변

1

을 클릭하고에 사각형을 추가 할 때 버튼이 times.create 3 사각형을 클릭합니다. 이전 직사각형이있는 이전 장면은 있지만 더 이상 표시되지 않습니다. 따라서 새 장면을 만드는 대신 이전 장면을 사용하십시오 : 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); 
} 
+0

@ Rooter 여러분을 환영합니다! – scopchanov