как менять только параметр QBrush в QGraphicsScene::addEllipse

Рейтинг: 0Ответов: 1Опубликовано: 07.04.2023

При выполнении код съедает память как менять только параметр QBrush?

if(link2 == 0) {
    scene2->addEllipse(100, 395, radius1, radius1, QPen(Qt::black), QBrush(Qt::red));
}
if(link2 == 1) {
    scene2->addEllipse(100, 395, radius1, radius1, QPen(Qt::black), QBrush(Qt::green));
}

link2 изменяется по таймеру

Ответы

▲ 0

Попробуйте вот так


// где-нибудь в полях класса положим указатель на эллипс
QGraphicsEllipseItem* ellipse; 

// один раз добавим эллипс на сцену и запомним указатель на добавленный объект
this->ellipse = scene2->addEllipse(100, 395, radius1, radius1, QPen(Qt::black), QBrush(Qt::red));

// а теперь при срабатывании какого-то события просто поменяем эллипсу цвет
if(link2 == 0) {
   this->ellipse->setBrush(Qt::red);
}
else if(link2 == 1) {
   this->ellipse->setBrush(Qt::green);
}