View Full Version : QGraphics scene use lagre memory count

16th October 2013, 08:48
Good day. It was necessary for me write application which draw graph. For base code I used examles 40000 chips. Nodes and eges work correctly, but I have large problem. In some cases qt begin use lagre amount memory (gigabates). But it is not memory leak. I think that at use memory for intersection. So if reimplement function "shape" in class lines - qt don't demant memory. But in this case drawing will be wrong. How I can solve this problem with memory (if it is possible)?

Here is function where I create graph. It is im file GraphWidget.cpp

void GraphWidget::DoTestGraph()
QSharedPointer<GraphStruct> testGraph;
testGraph = QSharedPointer<GraphStruct>(new GraphStruct);
for (size_t ind = 0; ind < 100; ++ind) // Create nodes (Horizontal node count)
for (size_t jnd = 0; jnd < 100; ++jnd) // Vertical node count
GraphStruct::GraphVertex testvertex(QPoint(50*ind, 50*jnd), "node", "node_descr");
for (size_t ind = 0; ind < testGraph->vertexList.size() - 3; ++ind) // Create edges (links)
GraphStruct::GraphEdge testedge("link", "link_desc", 0/*to node*/, ind + 1/*from node*/); // Do all links to one node

At this place begin large memory allocation

#include "..\..\QueryClient\NewGUI\QT_graph\GraphWidget.h"
#include <QtWidgets/QApplication>

int main(int argc, char *argv[])
QApplication a(argc, argv);

ST::User::GraphWidget gw;

return a.exec(); // At this place begin large memory allocation

I attach files which necessary to compile project. If necessary change pos nodes or links when graph creates, so change function DoTestGraph