2016-11-05 2 views
0

Meine C++ - Programm stürzt ab, wenn ich neue QGraphicsLineItem zu einer QList von QGraphicsPixmapItem hinzufügen. Unten ist die Funktion.C++ Programm stürzt beim Hinzufügen neuer QGraphicsItem zu Szene

void MainWindow::linkComputerNodes(QList<Node*> routers) 
{ 

    for(int i=0;i<routers.length();i++) 
    { 
     scene->addItem(new Link(routers.at(i),routers.at(i+1))); 
    } 
} 
+0

Sie iterieren von '0' nach' routers.length() ', und gleichzeitig versuchen Sie, auf das Element am Index' i + 1' zuzugreifen, das im letzten Bereich außerhalb des Bereichs liegt Iteration. –

Antwort

0

Ihre for-Schleife:

for(int i=0;i<routers.length();i++) 

jedem einzelnen Router in Ihrer Liste Geht durch, aber dann fügen Sie einen Link von jedem Router mit dem Router direkt danach. Dies bedeutet, dass Sie für den letzten Router versuchen, eine Verknüpfung zu einer nicht vorhandenen hinzuzufügen. Versuchen Sie Ihre Schleife zu ändern:

So fügen Sie nur Verbindungen zwischen vorhandenen Routern hinzu.

0

vielleicht um eins bei routers.at (i + 1)? d.h versuchen Router zugreifen [routers.length]

Verwandte Themen