crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )

> Рисование линий и память, QGraphicsScene и QLine
RazrFalcon
  опции профиля:
сообщение 7.7.2011, 18:14
Сообщение #1


Zombie Mod
*****

Группа: Участник
Сообщений: 1654
Регистрация: 24.5.2010
Из: Харьков
Пользователь №: 1752

Спасибо сказали: 64 раз(а)




Репутация:   212  


Рисую линии(график) так:
//в хедере
QList<QLineF> linesList;

//затем
linesList.append(QLineF(x1,y1,x2,y2));
scene->addLine(linesList.at(lineNumber),pen);
lineNumber++;
Или:
//в хедере
QList<QLineF*> *linesList;

// в конструкторе mainwindow
linesList = new QList<QLineF*>;
//затем
linesList.append(new QLineF(x1,y1,x2,y2));
scene->addLine(linesList.at(lineNumber),pen);
lineNumber++;

В обоих случаях утечка памяти. Рисуется по линии каждые 100мс. За 10 мин отжирает метров 10-20. Как исправить?
Точнее, как сделать так, что бы избавится от утечки памяти. При том, что мне, наверное, нужно хранить QList линий, что бы потом находит высоту в нужной точке графика посредством:
IntersectType QLineF::intersect ( const QLineF & line, QPointF * intersectionPoint ) const

Делаю это так:
QLineF *line1 = new QLineF(linesList->at(pos)->x1(), linesList->at(pos)->y1(),
                           linesList->at(pos)->x2(), linesList->at(pos)->y2());
QLineF line2(vLine->x(), 0, vLine->x(), scene->height());
QPointF intersectionPoint;
line1->intersect(line2, &intersectionPoint);
qDebug()<<intersectionPoint.y();


Уверен что есть более правильный способ.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

Сообщений в этой теме


Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


6 чел. читают эту тему (гостей: 6, скрытых пользователей: 0)
Пользователей: 0




RSS Текстовая версия Сейчас: 27.12.2024, 21:27