Witam,
mam straszny wyciek pamięci przy rysowaniu na scenie, próbowałem czyścić nawszelkie mi znane sposoby , ale nic nie pomogło.
Fragment kodu:
QPolygonF poziom;
poziom.append(QPointF(70./-80));
poziom.append(QPointF(-70./-80));
poziom = matrix.map(poziom);
scene->addPolygon(poziom,pen);
i tak kilkadziesiąt wielokątów. Podpowie ktoś jak pozbyć się tego wycieku?
[Edit]
Może dokładniej, mam straszny wyciek podczas rysowanie masy wielokątów aktualnie przy pomocy QPainEvent (we własnej funkcji także połyka coraz więcej pamięci)
Prawie pełen kod:
void Widget::painEvent (QPanitEvent *e)
{
scene = new QGraphicsScene();
ui->graphicsViev->setScene(scene);
QMatrix matrix;
matrix.rotate(kat);
QColor brown(184,99,14);
QBrush brownBrush (brown);
QPen brownpen (brown);
//i jeszcze kilka innych kolorów, wypełnień i pisaków już bardziej wymyślnych
QPolygonF poziom;
poziom.append(QPointF(70./-80));
poziom.append(QPointF(-70./-80));
poziom = matrix.map(poziom);
scene->addPolygon(poziom,pen);
QPolygonF pion;
pion.append(QPointF(70./-80+i));
pion.append(QPointF(-70./-80+i));
pion = matrix.map(poziom);
scene->addPolygon(pion,pen);
// i jeszcze kilkadziesiąt bardziej skomplikowanych wielokątów
QPainterPath path;
QFont font;
font.setPixelSize (12);
font.setBold(false);
font.setFamily("Arial");
path.addText(-92, -76, font, QString::number(-40));
path = matrix.map(path);
scene->addPath(path, brownpen, brownbrush);
// i jeszcze kilkanaście innych napisików
QRectF rect (10, 10, 10, 10);
for(j=0; j<h; j++)
{
scene->addrect(rect, brownpen, brownbrush);
}
}
chyba wszystko uwzględniłem nie ma bardzo w czym byka zrobić, ale jednak jak potrafię:)
Jak barkuje jakich ; , {} (), są literówy to wybaczcie na szybko ręcznie klepane.